正则表达式 - 匹配后找到所有行:

时间:2012-09-27 18:47:51

标签: c# regex

在电子邮件正文中给出以下文字:

  

不要修改上面的主题行。发送此电子邮件表示我要求延迟将此产品更改通知(PCN)分发到9001(Qwest)。此延迟请求的基本原理如下:

     

这就是我需要捕获的原因。

     

它可以长很多行。

     

并且持续很长时间

我正在尝试捕获“......下面提供的所有文字:”。

传递给BodyRegex的模式是:

.*provided below:(?<1>.*)

正在执行的代码是:

Regex regex2 = new Regex(BodyRegex, RegexOptions.IgnoreCase | RegexOptions.Multiline);
string note = null;
Match m2 = regex2.Match(body);
if (m2.Success)
{
    note = m2.Groups[1].Value;
}

未找到匹配项。

我需要使用哪种匹配模式来捕获“下面提供的所有文本行”?

2 个答案:

答案 0 :(得分:5)

部分(?...)是预见语法,这不是你想要的。

你可能想要试一试:

(?<=provided below:)[.|\n|\W|\w]*

我遇到过.NET无法按照您期望的方式识别行尾字符的问题。*,因此或条件。

答案 1 :(得分:3)

将此正则表达式与single line选项

一起使用
^.*?provided below:(.*?)$

工作here