在C#中使用正则表达式来匹配rtf格式的文本

时间:2011-07-05 01:03:10

标签: c# regex rtf

我需要使用正则表达式从rtf格式的文本中提取粗体文本。例如:\ b brown fox \ b0跳过\ b懒狗\ b0。

如何只获取\ b和\ b0之间的文字?我尝试了这个表达式,但它只返回了第一个匹配项:(\\b.+\b0[^\\b])

2 个答案:

答案 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);
}

答案 1 :(得分:1)

使用此正则表达式:

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