正则表达式匹配字符串仅包含特定字母

问题描述:

我试过几个正则表达式组合弄清楚这一点,但有些还是条件失败,正则表达式匹配字符串仅包含特定字母

我有一个输入字符串,只能包含给定定义字符集

可以让它说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

^[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

我认为你正在寻找这样的:


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

“^ [ABC] * $”也会匹配一个空字符串。要强制至少有一个字符存在,请将其更改为“^ [ABC] + $” – 2009-09-21 07:00:49