在下面的代码中,为什么模式与正则表达式不匹配,但如果我使用正则表达式逐行读取12sep.txt文件,它是否正常工作?
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);
答案 0 :(得分:11)
当输入字符串是单行或多行时,正则表达式特殊字符“^”和“$”的含义不同。 在单行中,平均“字符串开始”和“字符串结束”。 在多行中,它们表示“行开始”和“行结束”。
您可以在RegexOptions中选择控制它:RegexOptions.Multiline
文档清楚地说明了它的作用: “多行模式。更改^和$的含义,使它们分别在任何行的开头和结尾匹配,而不仅仅是整个字符串的开头和结尾。”
来自http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx