如何使用正则表达式匹配多行单词

时间:2014-03-12 09:37:35

标签: regex c#-4.0

当标题被描述时,我希望匹配多行字,正则表达式以“否”开头,以“e”结尾。这是下面的示例:

特别说明
没有
t fo r c
我们
汤姆
呃 SIG

TUR
Ë
目录
客户详细信息1
网站详情2
汤姆汤姆销售B.V.德国分公司2 动态带宽6
账单明细7

我真正想要的是这样:

特别说明
目录
客户详细信息1
网站详情2
汤姆汤姆销售B.V.德国分公司2 动态带宽6
账单明细7

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以将此模式与多行单行选项一起使用:

@"^No\r?\n.*?^e\r?\n"

示例:

Regex rgx = new Regex(@"^No\r?\n.*?^e\r?\n",
      RegexOptions.Multiline|RegexOptions.Singleline);
string result = rgx.Replace(yourstr, "");

模式描述:

^        # anchor for the start of the line (because the multiline option is 
         # used, otherwise ^ is an anchor for the start of the string)
No
\r?\n    # an optional carriage return and a line feed
.*?      # all characters zero or more times (the dot can match newlines since 
         # the singleline option is used, the dot can't match newlines with the 
         # default behavior)
^        # anchor for the start of the line
e        #
\r?\n    # if you want to preserve the last CRLF you could replace this with $
         # ($ is an anchor for the end of the line in multiline mode, in default
         # mode, $ means "end of the string")