我需要使用正则表达式从rtf格式的文本中提取粗体文本。例如:\ b brown fox \ b0跳过\ b懒狗\ b0。
如何只获取\ 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);
}
答案 1 :(得分:1)
使用此正则表达式:
\\b([\s\S]+?)\\b0