2010-06-21 53 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

相關問題