正则表达式应匹配所有长度在 2 到 3 个字符之间且仅包含 A 和 B ([AB]{2,3}) 的字符串。但它也应该只匹配最多包含一个 B 的字符串。
允许的字符串:
啊啊
啊啊
啊啊
啊啊
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
啊啊
啊啊。
不允许:
ABB <-- 两个 B
是否可以使用单个正则表达式来实现这一目标?我尝试过这样的事情:
([AB]{2,3})(?<=([B]*A[B]*){2})
但它不适用于 Java,因为它不支持 Look-behind 组的可变长度。
线程“主”java.util.regex.PatternSyntaxException 中的异常:后视组在索引 28 附近没有明显的最大长度 ([AB]{2,3})(?<=([B]*A[B ]*){2})
有什么建议么?