如何正则表达式以空格分隔的字母?

时间:2013-10-24 12:50:39

标签: java regex

我想验证一个字符串,它只包含由一个或多个空格分隔的单个字母(限制为A,B,C),并且不超过3个字母。

预期结果:

A: true
A B: true
A B C: true
B C A: true
A B C D: false
A B D: false
AB C: false

正则表达式可能必须包含A\s*|B\s*|C\s*,但还有什么?

4 个答案:

答案 0 :(得分:3)

[ABC]( +[ABC])?( +[ABC])?

[ABC]( +[ABC]( +[ABC])?)?

[ABC]( +[ABC]){0,2}

答案 1 :(得分:2)

这个很好用:

^[ABC]{1}( [ABC]){0,2}$

您匹配应该开始该行的第一个字符。然后匹配由空格分隔的0到2组[A-Z]。没有空格左右(^ $)

答案 2 :(得分:1)

您可以尝试下一个:

^[ABC]( [ABC]( [ABC])?)?$

答案 3 :(得分:0)

您可以使用这样的有限量词:

[ABC](?: +[ABC]){0,2}