如何匹配字符串,忽略结束换行符?

时间:2010-11-23 02:45:47

标签: c# .net regex

我希望能够将整个字符串(因此单词边界)与模式“ABC”匹配(“ABC”仅用于方便,我不想检查与固定字符串的相等性),所以换行对我来说意义重大。但是,当放在字符串末尾时,似乎会忽略单个“\ n”。我的模式有问题吗?

Regex r = new Regex(@"^ABC$");
string[] strings =
{
    "ABC",//True
    "ABC\n",//True: But, I want it to say false.
    "ABC\n\n",//False
    "\nABC",//False
    "ABC\r",//False
    "ABC\r\n",//False
    "ABC\n\r"//False
};
foreach(string s in strings)
{
    Console.WriteLine(r.IsMatch(s));
}

1 个答案:

答案 0 :(得分:4)

试试这个(未经测试):

Regex r = new Regex(@"\AABC\z");

\A =字符串开头的锚点 \z =锚点结束字符串
^ =开始行的锚点
$ =行尾的锚点