40

現在、角括弧内のすべてを取得して残りのテキストを破棄するために、C# (最新の .NET および Visual Studio 2008) で文字列を分割しようとしています。

例:「H1受容体アンタゴニスト [HSA:3269] [PATH:hsa04080(3269)]」

この場合、「HSA:3269」と「PATH:hsa04080(3269)」を文字列の配列に取得することに関心があります。

これはどのように達成できますか?

4

2 に答える 2

88

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]);
}

結果をもたらします。

于 2009-04-11T19:17:21.557 に答える