C#在文件名中查找特殊字符

时间:2013-04-12 19:28:41

标签: c# regex special-characters

我需要简单地看一下文件名中是否有一组特殊字符匹配我已经尝试了所有常用的正则表达式,包括下面的那些。所有这些示例都会找到除括号之外的任何特殊字符。

Regex.Match(filename, "[\\[\\]{}!@#]");
// I even separated this out into 3 like this
Regex.Match(filename, "[");
Regex.Match(filename, "]");
Regex.Match(filename, "[{}!@#]");

filename.IndexOfAny("[]{}!@#".ToCharArray()) != -1

是什么给出了?

2 个答案:

答案 0 :(得分:4)

Regex.Match(test, @"[\[\]{}!@#]");

适合我:

string test = "aoeu[aoeu";

Match m = Regex.Match(test, @"[\[\]{}!@#]");
// m.Success == true

答案 1 :(得分:1)

您的解决方案

filename.IndexOfAny("[]{}!@#".ToCharArray()) != -1

已经很完美了。将正则表达式转义为Houdini。