我想验证一个字符串,它只包含由一个或多个空格分隔的单个字母(仅限于 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*
,但还有什么?
[ABC]( +[ABC])?( +[ABC])?
或者
[ABC]( +[ABC]( +[ABC])?)?
或者
[ABC]( +[ABC]){0,2}
这个工作正常:
^[ABC]{1}( [ABC]){0,2}$
您匹配第一个字符,它应该开始该行。然后你匹配0到2组[A-Z]
由空格分隔的组。左右没有空格(^ $)
你可以试试下一个:
^[ABC]( [ABC]( [ABC])?)?$
您可以使用这样的有限量词:
[ABC](?: +[ABC]){0,2}