这是我的正则表达式:Regex r = new Regex("start(.*?)end", RegexOptions.Multiline);
这意味着我希望获得"start"
和"end"
之间的内容。但问题是,开始和结束之间是一个新行或\n
,正则表达式不会返回任何内容。
那么如何让正则表达式找到\n
?
答案 0 :(得分:5)
Multiline
选项的名称具有误导性,正如其中一个选项 - Singleline
:
Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);
来自MSDN,RegexOptions Enumeration:
单行 - 指定单行模式。更改点(。)的含义,使其匹配每个字符(而不是除\ n之外的每个字符)。
答案 1 :(得分:2)
包含RegexOptions.SingleLine,表示.
匹配所有内容,包括\n
Regex r = new Regex("start(.*?)end", RegexOptions.Multiline | RegexOptions.SingleLine);
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx。
答案 2 :(得分:1)
使用单行代替多行:
Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);
BTW,RegexBuddy是您宝贵的朋友(不,我与作者没有任何联系,除非是一个快乐的用户)。