正则表达式特殊字符

时间:2014-03-03 15:22:19

标签: c# regex

代码在C#中。 如果我使用正则表达式简单字符串代码正在工作(例如fileName =“Test”),但如果我使用特殊字符( - ()[] {}!。,`〜@#%; = - +&)出现问题。

fileName = "Test- ( ) [ ] {} ! . , ` ~ @ # % ; = - + &"; 
string pattern = ".*" + fileName + @"_\d{2}_\d{2}_\d{2}.xml";
//pattert = ".*" + "Test- ( ) [ ] {} ! . , ` ~ @ # % ; = - + &" + @"_\d{2}_\d{2}_\d{2}.xml";
Regex rgx = new Regex(pattern);

if (rgx.IsMatch("..\\"+"Test- ( ) [ ] {} ! . , ` ~ @ # % ; = - + &_13_45_23.xml"))
{
...
}

有机会使用这些特殊字符。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

使用Regex.Escape

filename = Regex.Escape(filename)

答案 1 :(得分:1)

如果您想安全处理fileName中的特殊字符,则应使用Regex.Escape方法,例如:

string pattern = ".*" + Regex.Escape(fileName) + @"_\d{2}_\d{2}_\d{2}\.xml"; 
//                            and don't forget to escape the '.' here ^