2010-06-21 215 views
2

我需要正则表达式的字符串myString的只具有 '#$%&!':正则表达式:0-9 AZ AZ或任何这些* + -/=^_`{|}〜

  • 0-9
  • AZ或az
  • 任何字符* + -/=^_` '#$%&!'{|}〜?

这是我的代码行:

new Regex("[a-zA-Z0-9]").IsMatch(myString); 

到目前为止,我有[a-zA-Z0-9]并能正常工作的前两个listItems中。 当前撕裂我的头发(这是很好,我想保留它)超过元字符,并获得无处不在。

任何帮助将不胜感激。 谢谢。 戴夫

+0

什么问题是什么?你逃脱了他们吗? – leppie 2010-06-21 09:01:13

+0

我试图用\转义它们,并在运行时得到无法识别的序列。 – Dave 2010-06-21 09:38:35

回答

4

您好如果你只想在你的字符串中的字符,上市是非常simple.but你需要匹配开始线的一端,

new Regex("^[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]*$").IsMatch(myString); 
3
"[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]" 

检查(“ - ”),减号是在[]序列

2

元字符是括号之间细微的最后一个字符,只要你逃脱显著的。此外,短划线必须是您序列中的最后一个。

new Regex("[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~-]").IsMatch(myString); 
+0

没有。这个。 alllows任何字符,以至于不起作用。 – Dave 2010-06-21 09:39:11

1

尝试:

var re = "[a-zA-Z0-9" + Regex.Escape("'!#$%&'*+-/=?^_`{|}~.") + "]"; 
+0

'Regex.Escape'在字符类中不安全 - 它不会转义'-':http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.escape。 aspx。它也会逃避不需要它的角色,但没关系。 – Kobi 2010-06-21 10:38:44