2011-07-05 13 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

謝謝魯本斯,你的表達解決了這個問題。 – FadelMS