.NET 正则表达式匹配行

5
为什么 ^.*$ 在以下文本中无法匹配一行:

这是一些示例文本

这是另一行

这是第三行

我如何创建一个正则表达式来匹配整行,以便在查找下一个匹配项时返回下一行。
换句话说,我想要一个正则表达式,使得第一个匹配项为这是一些示例文本,下一个匹配项为这是另一行等。

1
为什么不直接使用 StringReader.ReadLine 呢? - L.B
1
这并不是你问题的确切答案,但如果你能详细说明你正在做什么,可能会有更好的非正则表达式解决方案。 - jglouie
3个回答

10

^$会匹配整个输入序列。如果要在文本中匹配单独的行,您需要使用多行正则表达式选项。

Regex rgMatchLines = new Regex ( @"^.*$", RegexOptions.Multiline);

在这里查看正则表达式选项的解释。以下是有关多行选项的说明:

多行模式。更改了^$的含义,使它们分别匹配任何行的开头和结尾,而不仅仅是整个字符串的开头和结尾。


4

使用正则表达式选项

Regex regex = new Regex("^.*$", RegexOptions.Multiline);

2

您需要启用RegexOptions.Multiline才能使^$匹配行的开头和结尾。否则,^$将匹配整个输入字符串的开头和结尾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接