2011-07-05 7 views
1

rtf形式のテキストから太字を抽出するには、正規表現を使用する必要があります。例:\ b茶色の狐\ b0は\ b怠惰な犬\ b0を飛び越えた。C#の正規表現を使用してRTF形式のテキストと一致させる

\ bと\ b0の間に囲まれたテキストのみを取得するにはどうすればよいですか?私はこの表現を試みたが、それだけで最初のマッチ返さ:(\\b.+\b0[^\\b])

+0

を\ \ 'また、貪欲でない魔法の '+?'も作成してください。 –

答えて

3
string s = @"The \b brown fox\b0 jumped over the \b lazy dog\b0"; 

Regex rgx = new Regex(@"\\b(.*?)\\b0"); 
foreach (Match m in rgx.Matches(s)) 
{ 
    Console.WriteLine(m.Groups[1].Value); 
} 

また、あなたがキャプチャを使用することができます。

string s = @"The \b brown fox\b0 jumped over the \b lazy dog\b0"; 

Regex rgx = new Regex(@"(.*?\\b(.*?)\\b0)*"); 
foreach (Capture c in rgx.Match(s).Groups[2].Captures) 
{ 
    Console.WriteLine(c.Value); 
} 
は `、バックスラッシュをエスケープ
+0

おかげで、あなたの表現も問題を解決しました。 – FadelMS

1

使用この正規表現:

\\b([\s\S]+?)\\b0 
+0

Rubensに感謝します。あなたの表現は問題を解決しました。 – FadelMS

関連する問題