我想验证一个字符串,它只包含由一个或多个空格分隔的单个字母(限制为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*
,但还有什么?
答案 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}