2012-07-13 164 views
4

爲什麼^.*$不匹配的行:.NET正則表達式匹配線

這是一些示例文本

這是另一條線

這是第三個行

如何創建一個匹配整行的正則表達式,以便在找到下一個匹配項時將返回下一行。

換句話說,我會想有一個正則表達式,使得第一場比賽= This is some sample text,下一場比賽= this is another line等等

+1

爲什麼不簡單使用'StringReader.ReadLine'? – 2012-07-13 14:16:49

+1

這不是您的問題的確切答案,但如果您可以詳細說明您正在做什麼,那麼可能會有更好的非正則表達式解決方案 – jglouie 2012-07-13 14:17:14

回答

8

^和$匹配對整個輸入序列。您需要使用Multiline Regex選項來匹配文本中的各行。

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

請參閱here關於正則表達式選項的解釋。這裏是怎麼說的多行選項:

多行模式。更改^和$的含義,以便它們分別匹配 開頭和結尾的任何行,而不僅僅是整個字符串的開始和結尾的 。

2

您必須啓用RegexOptions.Multiline使^$開頭匹配和行結束。否則,^$將匹配整個輸入字符串的開始和結束。

4

使用正則表達式選項

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