2012-09-13 71 views
1

在下面的代碼中,爲什麼模式不與正則表達式匹配,但是如果我正在使用正則表達式逐行讀取12sep.txt文件,它正常工作?如何在C#中使用正則表達式讀取文本文件?

string file = @"C:\Documents and Settings\Sandeep.kumar\Desktop\12sep.txt"; 
string filedta = File.ReadAllText(file); 
string pattern = @"^[^\s]+.[^\s]txt$"; 
Regex rx = new Regex(pattern, RegexOptions.None); 
MatchCollection mc = rx.Matches(filedta); 

回答

11

正則表達式特殊字符「^」和「$」在輸入字符串爲單行或多行時不具有相同的含義。 單行中的意思是「字符串開始」和「字符串結束」。 在多行中它們表示「行開始」和「行結束」。

你必須RegexOptions一個選項來控制這一點:RegexOptions.Multiline

和文檔明確指出它做什麼: 「多行模式改變的意義^和$所以他們分別匹配的開始和結束, ,任何一行,而不僅僅是整個字符串的開頭和結尾。「

from http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx

相關問題