例如,我们有以下字符串:

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);

07-24 19:09