我正在尝试编写一个正则表达式,它接受一个字符串并将它们构建为一个表达式作为一个范围。我使用 Regex.Escape (.net 3.5) 来清理这些字符串,这样就不应该留下任何控制字符。但似乎 Escape 方法没有按预期工作,并且不会逃避关闭}
或]
字符。它不应该逃避这些吗?这是我正在做的一个例子:
string test = @"sdfz346gv][)(}{><";
string pattern = "[" + Regex.Escape(test) + "]+";
string input = "ffff{444}g";
if (Regex.IsMatch(input, pattern))
{
Console.WriteLine("Matched");
}
else
{
Console.WriteLine("Not Matched");
}
该pattern
字符串似乎具有该值[sdfz346gv]\[\)\(}\{><]+
并且不会匹配ffff{444}g
,但就我而言,它应该看起来像这样[sdfz346gv\]\[\)\(\}\{><]+
,这是一个执行不同并且将匹配的表达式ffff{444}g
。我可以用 and 替换}
and]
字符,\}
但是\]
有没有其他字符不能被这种转义方法转义?我可以依靠它吗?