2011-02-03 24 views
10

< <と>>の間の文字列から値を抽出しようとしています。しかし、それらは何度も起こる可能性があります。RegEx複数の文字列を一致させる

これに一致する正規表現は誰でも手助けできます。

this is a test for <<bob>> who like <<books>> 
test 2 <<frank>> likes nothing 
test 3 <<what>> <<on>> <<earth>> <<this>> <<is>> <<too>> <<much>>. 

次に、すべての値を取得するためにGroupCollectionをforeachしたいとします。

大きな助けを受けました。おかげさまで

答えて

28

先に正のデザインを使用し、角括弧に一致するように主張の背後に見て、一致する.*?を使用しますそれらの括弧の間の可能な最短の文字列。 Matches()メソッドによって返されたMatchCollectionを反復してすべての値を検索します。

Regex regex = new Regex("(?<=<<).*?(?=>>)"); 

foreach (Match match in regex.Matches(
    "this is a test for <<bob>> who like <<books>>")) 
{ 
    Console.WriteLine(match.Value); 
} 
+0

これは正確に私が後にしたものです。本当に素早い応答をありがとう。 –

1

あなたはこれらのいずれかを試すことができます。

(?<=<<)[^>]+(?=>>) 
(?<=<<)\w+(?=>>) 

あなたが返さMatchCollectionを反復処理する必要がありますが。このような

関連する問題