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

Joã*_*ira 37 c# regex split

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

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

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

怎么能实现这一目标?

Kon*_*lph 72

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]);
}
Run Code Online (Sandbox Code Playgroud)

产生你的结果.

  • 您是否觉得3.5中的MatchCollection enumeartor仍然将Match作为对象返回? (4认同)
  • 无论如何...一个更好的正则表达式匹配可能是\ [([^ \]]*)\]以便安全起见:-) (4认同)