gpt4 book ai didi

java - 正则表达式:匹配具有重复字符的排列,其中一个字符不能出现多次

转载 作者:搜寻专家 更新时间:2023-11-01 02:13:58 26 4
gpt4 key购买 nike

正则表达式应匹配所有长度介于 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})

有什么建议吗?

最佳答案

您可以使用否定前瞻来确保字符串没有两个 B

^(?!.*B.*B)[AB]{2,3}$

See it

关于java - 正则表达式:匹配具有重复字符的排列,其中一个字符不能出现多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com