正则表达式不符合预期

时间:2013-09-29 19:50:29

标签: c# regex visual-studio-2012

我在使用正则表达式时遇到了麻烦。

我有以下代码:

string d = "moveUp(),;moveDown();";
string[] s = Regex.Split(d, ",");
foreach (string line in s)
{
     string line1 = line.Replace("\n", null);
     line1 = line1.Replace("\r", null);
     string pattern = @"^moveUp();$";
     bool a1 = Regex.IsMatch(line1, pattern);
     if (!a1)
     {
         warning.Text = "error";
         return;
     }
}

为什么a1 false的值在这里?

3 个答案:

答案 0 :(得分:3)

()在正则表达式中具有特殊含义:捕获组。

你必须逃避它:\(\)字面上匹配()

答案 1 :(得分:1)

尝试从

更改第一行
string s="moveUp(),;moveDown();";

string s="moveUp();,moveDown();";

答案 2 :(得分:1)

因为拆分moveUp(),;moveDown();会产生:moveUp();moveDown();

,应与;交换。