C#Regex Split - 方括号内的所有内容

时间:2009-04-11 19:13:02

标签: c# regex split

我目前正在尝试在C#(最新的.NET和Visual Studio 2008)中拆分字符串,以便检索方括号内的所有内容并丢弃剩余的文本。

例如:“H1受体拮抗剂[HSA:3269] [路径:hsa04080(3269)]”

在这种情况下,我有兴趣将“ HSA:3269 ”和“ PATH:hsa04080(3269)”放入字符串数组中。

如何实现这一目标?

2 个答案:

答案 0 :(得分:70)

Split在这里不会帮助你;你需要使用正则表达式:

// using System.Text.RegularExpressions;
// pattern = any number of arbitrary characters between square brackets.
var pattern = @"\[(.*?)\]";
var query = "H1-receptor antagonist [HSA:3269] [PATH:hsa04080(3269)]";
var matches = Regex.Matches(query, pattern);

foreach (Match m in matches) {
    Console.WriteLine(m.Groups[1]);
}

产生结果。

答案 1 :(得分:0)

试试这个

string mystr = "Hello my name is  {robert} and i live in  {florida}";

List<string> myvariables = new List<string>();
while (mystr.Contains("{"))
{
    myvariable.Add(mystr.Split('{', '}')[1]);
    mystr = mystr.Replace("{" + mystr.Split('{', '}')[1] + "}", "");
};

这样我将有一个包含罗伯特和佛罗里达的数组。

相关问题