正则表达式匹配(相同长度)AAB

时间:2016-08-08 15:18:05

标签: regex

Hello stackoverflow社区!

我想匹配AAB的所有(相同长度)字符串排列,所以我想匹配:

AAB
BAA
ABA

但不是:

ABB
AB
AABA

我已经发现许多来源提到类似问题的外观和反向引用,例如[1][2],但我正在努力处理重复字符,例如" AA"。

我试过了:

^(?=[AAB]{3}$)(?!.*(.).*\1).*$
^([AAB])(?!\1)([AAB])(?!\1|\2)([AAB])(?!\1|\2|\3)$

你有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个匹配三种排列的模式:

^(?=.*B)(?=(.*A){2})...$

此模式要求:

  • 字符串的长度为3(...)
  • 有一个B(?=.*B)前瞻)
  • 有两个A s((?=(.*A){2})前瞻)

但更简单的^(AAB|ABA|BAA)$也不会起作用吗?