这是我的正则表达式:
((GO)( [A-Z])+)
我希望每封信最多出现一次,不幸的是它无法正常工作,因为这个输入:
GO A B C C
返回true,但应返回false。
答案 0 :(得分:5)
答案 1 :(得分:4)
你的正则表达式是:
GO(?:([A-Z])(?!.*\1))+$
GO
,后跟:.
)之前的任何($
)后续字符不匹配。 最后一步的关键是zero-length negative lookahead:(?!.*\1)
答案 2 :(得分:1)
您可以使用以下正则表达式:
^GO (?:([A-Z])(?!.*\1)\s*)*$
它将匹配任何内容:
GO<space>
[A-Z]
):
样本匹配案例:
GO A B C
GO ABC
GO A B C G O
示例不匹配的案例:
A B C
GO A A A