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选项,是否可以在精确的两行中匹配精确的两个文本?为什么它会这样。

Regex通过多行匹配

怎么样:

Something'r?'nAnotherThing

'r?,以防字符串不是来自Windows。

Something$^AnotherThing不能与RegexOptions.Multiline选项配合使用的原因是,^$在换行时与匹配,而不是换行本身,因此以下操作会起作用:

new Regex(@"Something$'r?'n^AnotherThing", RegexOptions.Multiline);

尝试使用回车符和换行符进行匹配,例如

Something'r?'nAnotherThing

基本上,回车会给你带来麻烦(你并不孤单)。你知道你的短信来自哪个操作系统吗?如果它来自Windows,则在之前会有一个''r''n,您需要对此进行说明。