Regex 如何编写正则表达式这些模式:“AA-AA”,“AB-AB”而不是“AA-AB”和“AA-AC”

Regex 如何编写正则表达式这些模式:“AA-AA”,“AB-AB”而不是“AA-AB”和“AA-AC”,regex,Regex,如何编写生成以下匹配项的正则表达式: 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]

如何编写生成以下匹配项的正则表达式:

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]+。

您可以尝试以下模式:

^(A+B*C?) \1$
从A开始,任意数量的B和一个可选的C。然后捕获第一部分,匹配一个空格,然后尝试匹配最初匹配的内容,确保没有比这更多的内容

上面的演示使用^A+B*C\1\b可与末尾的[passed]或[failed]标记一起使用。如果要使用$,则必须删除所有[passed]和[failed]标记


没有提到明确的规则,因此如果有任何调整,正则表达式可能需要调整。

有尝试吗?还有,通过和失败的规则是什么?你在哪种语言/环境中使用正则表达式?我尝试了这个正则表达式模式^AABC{0,1}AABC{0,1},但我不能排除AA-AB和AABBC-AABB