Regex通过多行匹配
本文关键字:Regex | 更新日期: 2023-09-27 18:29:44
例如,我们有以下字符串:
Something
AnotherThing
Something AnotherThing
如果我使用RegexOptions.Singleline
和模式Something.+?AnotherThing
,那么当我只想匹配第一行和第二行时,我会得到两个匹配。我想用类似FirstLine#endofline##startofline#AnotherLine
的东西。所以我使用:
var regex = new Regex(@"Something$^AnotherThing", RegexOptions.Multiline);
但它不起作用。我知道我可以使用Singleline来匹配前两行(而不是最后一行),但问题是:在没有Singleline说明符的情况下,只使用Multiline选项,是否可以在精确的两行中匹配精确的两个文本?为什么它会这样。
怎么样:
Something'r?'nAnotherThing
'r?
,以防字符串不是来自Windows。
Something$^AnotherThing
不能与RegexOptions.Multiline
选项配合使用的原因是,^
和$
在换行时与匹配,而不是换行本身,因此以下操作会起作用:
new Regex(@"Something$'r?'n^AnotherThing", RegexOptions.Multiline);
尝试使用回车符和换行符进行匹配,例如
Something'r?'nAnotherThing
基本上,回车会给你带来麻烦(你并不孤单)。你知道你的短信来自哪个操作系统吗?如果它来自Windows,则在之前会有一个''r''n,您需要对此进行说明。