2012-08-14 20 views
-4

如何匹配包含A-Z,0-9字符串,#,+, - &一段時間,以任何順序?沒有其他人物。正則表達式中的A-Z,0-9的任何字符,#,+, - ,

+0

爲什麼下來票呢?請告訴我。我花了幾個小時做了大量的研究,不能在短時間內學習。所以我想要幫助。支持我的會員,請投票。 – 2012-08-14 15:15:53

+0

你的問題不清楚,也沒有顯示任何研究工作。 1)您不顯示有效或無效字符串的任何示例。 2)你沒有顯示你所嘗試過的。 3)你沒有說明爲什麼失敗。 4)你使用'&&而不是「and」這個詞是令人困惑的。 5)你可能是指「或」而不是「和」。 6)你沒有明確說明你是否想要大寫字母。 7)你還沒有說過,如果這將用於'Regex.Match','RegexValidator'或其他東西。 8)等等...我沒有讓你失望,但我能理解爲什麼很多人都這麼做。 – 2012-08-14 21:27:50

+0

謝謝。 。 。 :) – 2012-08-15 10:55:40

回答

3

使用character class

 
^[a-z0-9#+.-]+$ 

說明

  • ^是字符串anchor的開始。
  • [...]是一個字符類。
  • +是指 「一個或多個」。
  • $是串錨的端部。
+0

缺少'&'字符 – 2012-08-14 11:58:24

+1

@Ωmega:請仔細閱讀問題。他的意思是「含有a-z **,** 0-9 **,**#**,** + **,** - **和**期間」。 ','和'&是列表分隔符,而不是他想要選擇的字符。考慮「他吃了麪包,黃油**和**果醬」。這意味着:他吃了「麪包」。他吃了「黃油」。他吃了「果醬」。這並不意味着:他吃了「和」。還要考慮「A,B,C&D」。 '&'不是列表中的一個元素。它是一個分隔符。它就像一個逗號,除了它在最後和最後一個元素之間使用。相關:http://en.wikipedia.org/wiki/Serial_comma – 2012-08-14 13:25:25

0

使用這個表達式:

 
^[\da-z#+.&-]+$ 
0
using System; 
using System.Text.RegularExpressions; 

public class Example 
{ 
    public static void Main() 
    { 
     string[] myStrings = { "1-2&3-4", 
          "ABC#123", 
          "12+abc-34#" }; 
     string pattern = @"^[a-z0-9&#+.-]+$"; 
     foreach (string myString in myStrings) 
     Console.WriteLine("{0} {1} a valid string.", 
          myString, 
          Regex.IsMatch(myString, pattern) ? "is" : "is not"); 
    } 
} 

測試此代碼here

+1

'\ d'是基於.net的unicode,所以「1-2&3-41」是一個有效的表達式字符串。 (注意字符串中的「1」,「阿拉伯數字」) – stema 2012-08-14 12:10:43

相關問題