如何编写产生以下匹配项的正则表达式:
A A [passed]
B B [failed]
AA AA [passed]
a a [failed]
A [failed]
AA AB [failed]
AB AB [passed]
AC AC [passed]
ABB ABB [passed]
ACC ACC [failed]
ABC ABC [passed]
ABBC ABBC [passed]
AABBC AABBC [passed]
BC BC [failed]
AD AD [failed]
AABBC AABB [failed]
AAA [failed]
123 123 [failed]
ABCZ ABCZ [failed]
正则表达式必须正好得到8个正确的匹配和0个错误的匹配。示例正则表达式是[A-Z] +。
答案 0 :(得分:1)
你可以尝试这种模式:
^(A+B*C?) \1$
以A
开头,任意数量的B
和一个可选C
。然后捕获第一部分,匹配一个空格,然后尝试匹配最初匹配的部分,确保只有那个。
上面的演示使用^(A+B*C?) \1\b
,最后使用[passed]
或[failed]
标记。如果您想使用$
,则必须删除所有[passed]
和[failed]
代码。
没有提到明确的规则,所以如果碰巧有正则规则可能需要调整。