C# Regex 使用 newLine 查找两个字符串之间的字符串

本文关键字:字符串 两个 之间 使用 Regex newLine 查找 | 更新日期: 2023-09-27 18:34:41

这是我的正则表达式:Regex r = new Regex("start(.*?)end", RegexOptions.Multiline);

这意味着我想在"start""end"之间获取东西。但问题是开始和结束之间是一个新行或'n,正则表达式不返回任何内容。

那么如何让正则表达式找到'n呢?

C# Regex 使用 newLine 查找两个字符串之间的字符串

Multiline 选项的名称具有误导性,正确的选项之一也是如此 - Singleline

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);

从 MSDN,RegexOptions 枚举:

单行 - 指定单行模式。更改点 (.( 的含义,使其匹配每个字符(而不是除 ' 之外的每个字符(。

包括 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。

使用单行而不是多行

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);

顺便说一句,RegexBuddy是你宝贵的朋友(不,除了是一个快乐的用户之外,我与作者没有任何联系(。