2009-09-21 1489 views
2

我試過幾個正則表達式組合弄清楚這一點,但有些還是條件失敗,正則表達式匹配字符串僅包含特定字母

我有一個輸入字符串,只能包含給定定義字符集

可以讓它說A,B或C.

我該如何配合?

ABBBCCC - isMatch真

AAASDFDCCC - isMatch假

PS。我正在使用C#

+0

未知:將ABBBBAC比賽? – 2009-09-21 06:39:23

+0

是的......它會匹配....具有A和/或B和/或C的任何字符串將匹配 – 81967 2009-09-21 06:41:46

+0

大小寫敏感性如何? aBBBbBc會匹配嗎? – 2009-09-21 06:44:16

回答

18
^[ABC]+$ 

應該足夠了:即使用Character class or Character Set

Anchors'^'和'$'只是爲了確保所有字符串只包含從開始到結束的字符。

Regex.Match("ABACBA", "^[ABC]+$"); // => matches 

含義:一個字符集不能保證他匹配的字符順序。

Regex.Match("ABACBA", "^A+B+C+$"); // => false 

將保證順序

+0

謝謝VonC,Works Perfect,我在用[ABC] +,我認爲這很好,但是Anchor和$都是必需的......乾杯! – 81967 2009-09-21 06:44:55

+0

感謝您的訂購技巧,這將幫助我。 – JasonBartholme 2009-09-21 16:32:42

1

我認爲你正在尋找這樣的:


Match m = Regex.Match("abracadabra", "^[ABC]*$"); 
if (m.Success) { 
    // Macth 
} 
+0

「^ [ABC] * $」也會匹配一個空字符串。要強制至少有一個字符存在,請將其更改爲「^ [ABC] + $」 – 2009-09-21 07:00:49

相關問題