' - '在使用正则表达式匹配特殊字符时不起作用,c#

时间:2011-02-23 12:59:27

标签: c# .net regex

模式是

Regex splRegExp = new System.Text.RegularExpressions.Regex(@"[\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,-,_]");

除“ - ”外,所有字符均有效。请指教。

3 个答案:

答案 0 :(得分:4)

使用

@"[,@+\\?\d%.*&^$(!)#_-]"

不需要所有这些逗号。

如果您在character class内放置-,则只有当它位于班级的开头或结尾时才表示文字短划线。否则它表示像A-Z这样的范围。正如Damien所说,范围,-,确实相当小(当然不包含-。)

答案 1 :(得分:1)

' - '必须是正则表达式中的第一个字符。

Regex splRegExp = new System.Text.RegularExpressions.Regex(@"[-,\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,_]");

答案 2 :(得分:0)

你需要转义-character才能使它工作(这是一个正则表达式语法)

试试这个:

"[\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,\-,_]"