考虑以下正则表达式:
/^(A....)?(B..)?(C...)?$/
有没有办法限制正则表达式,至少有一个捕获必须匹配"?
实际上我需要这个用于java正则表达式。我可以想象,这是不可能的。也许使用更强大的perl正则表达式机器?
当然,我可以对其进行后期处理,但也许还有另一种方式......
答案 0 :(得分:2)
确保某些内容与前瞻
匹配/^(?=.)(A....)?(B..)?(C...)?$/
答案 1 :(得分:2)
您可以使用此模式:
^(A....)?(B..)?(C...)?(?<=.)$
最后的零宽度断言确保整体匹配中至少有一个字符,如果没有任何组匹配任何字符,则不会出现这种情况。
答案 2 :(得分:0)
RegEx匹配模式:
/apples|bananas|carrots/
来源文字:
This allows apples or bananas or carrots to appear anywhere in the source text, confirming that the source contains at least of of the choices.
见https://regex101.com/r/gZ1cW5/1
但是,正如我评论的那样,目前尚不清楚你真正想要的是什么。目前尚不清楚您是否需要知道哪一个匹配。 您应该始终发布要评估的示例源文本。