正则表达式应匹配所有长度介于 2 到 3 个字符之间且仅包含 A 和 B ([AB]{2,3}) 的字符串。但它也应该只匹配最多包含一个 B 的字符串。
允许的字符串:
AA
AB
BA
AAA
AAB
ABA
BAA
不允许:
ABB <-- two B's
是否可以使用单个正则表达式实现此目的?我试过类似的东西:
([AB]{2,3})(?<=([B]*A[B]*){2})
但它在 Java 中不起作用,因为它不支持 Look-behind 组的可变长度。
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 28 ([AB]{2,3})(?<=([B]*A[B]*){2})
有什么建议吗?
最佳答案
关于java - 正则表达式:匹配具有重复字符的排列,其中一个字符不能出现多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849477/