我在使用正则表达式时遇到了麻烦。
我有以下代码:
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
的值在这里?
答案 0 :(得分:3)
()
在正则表达式中具有特殊含义:捕获组。
你必须逃避它:\(\)
字面上匹配()
。
答案 1 :(得分:1)
尝试从
更改第一行string s="moveUp(),;moveDown();";
到
string s="moveUp();,moveDown();";
答案 2 :(得分:1)
因为拆分moveUp(),;moveDown();
会产生:moveUp()
和;moveDown();
,
应与;
交换。