例如,我们有以下字符串:
Something
AnotherThing
Something AnotherThing
如果我将
RegexOptions.Singleline
与模式Something.+?AnotherThing
一起使用,那么当我只想匹配第一行和第二行时,就会得到两个匹配项。我想使用FirstLine#endofline##startofline#AnotherLine
之类的东西。所以我用:var regex = new Regex(@"Something$^AnotherThing", RegexOptions.Multiline);
但这不起作用。我知道我可以对Singleline使用某些技巧来匹配前两行(而不是最后一行),但问题是:是否可以在没有Singleline说明符的情况下仅在具有多行选项的情况下,在精确的2行中匹配精确的两个文本?以及为什么它会像这样。
最佳答案
怎么样:
Something\r?\nAnotherThing
\r?
以防字符串不是来自Windows。Something$^AnotherThing
不能与RegexOptions.Multiline
选项一起使用的原因是,因为^
和$
在换行符时匹配,而不是在换行符本身,所以下面的方法可以工作:new Regex(@"Something$\r?\n^AnotherThing", RegexOptions.Multiline);