模式不工作是“ - ”,而使用正则表达式匹配的特殊字符,C#
Regex splRegExp = new System.Text.RegularExpressions.Regex(@"[\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,-,_]");
除了所有字符的工作“ - ”。请指教。
模式不工作是“ - ”,而使用正则表达式匹配的特殊字符,C#
Regex splRegExp = new System.Text.RegularExpressions.Regex(@"[\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,-,_]");
除了所有字符的工作“ - ”。请指教。
使用
@"[,@+\\?\d%.*&^$(!)#_-]"
无需所有这些逗号。
如果您将-
放在character class的内部,则仅当它位于课程的开始或结束时才表示文字短划线。否则它表示一个范围如A-Z
。正如Damien所说,范围,-,
确实相当小(当然并不包含-
)。
我试图想出一个最好的方式来说明他确实想要','在这个角色组中,并且范围'' - - ''很小,但是您似乎已经充分总结了一些事情。 – 2011-02-23 13:04:56
' - '必须是您的正则表达式中的第一个字符。
Regex splRegExp = new System.Text.RegularExpressions.Regex(@"[-,\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,_]");
或者你可以用'\ -'' – xanatos 2011-02-23 13:02:39
“逃避”'''不,它不会。请参阅@Tim Pietzcker的答案。 – 2011-02-23 13:16:19
你需要逃脱字符数限制为它工作(这是一个正则表达式语法)
试试这个:
"[\,@,+,\,?,\d,%,.,?,*,&,^,$,(,!,),#,\-,_]"
为什么所有的逗号?它们被视为一个“标准”字符而不是分隔符,所以它们被“匹配”('[,]'匹配',')。并且要注意'\'转义下一个字符。 – xanatos 2011-02-23 13:05:44