1

我想验证一个字符串,它只包含由一个或多个空格分隔的单个字母(仅限于 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

4 回答 4

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

或者

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

或者

[ABC]( +[ABC]){0,2}
于 2013-10-24T12:53:08.477 回答
2

这个工作正常:

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

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

于 2013-10-24T12:55:34.340 回答
1

你可以试试下一个:

^[ABC]( [ABC]( [ABC])?)?$
于 2013-10-24T12:53:36.887 回答
0

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

[ABC](?: +[ABC]){0,2}
于 2013-10-24T12:54:17.153 回答