gpt4 book ai didi

java - 使用反向引用来引用模式而不是实际匹配

转载 作者:行者123 更新时间:2023-11-29 03:49:16 24 4
gpt4 key购买 nike

我正在尝试编写一个匹配(不一定重复)文本 block 序列的正则表达式,例如:

foo,bar,foo,bar

我最初的想法是使用反向引用,比如

(foo|bar)(,\1)*

但事实证明,这个正则表达式只匹配 foo,foobar,bar 而不是 foo,barbar ,foo(等等)。

是否有任何其他方式来引用模式的一部分?

在现实世界中,foobar 是 50 多个字符长的正则表达式,我只是想避免复制粘贴它们来定义序列。

最佳答案

你可以使用 (foo|bar)(?:,(?-1))* 等正则表达式风格。但是 Java 不支持子模式调用。

因此,您最终可以选择像 ajx 的答案中那样执行字符串替换/格式化,或者如果您知道逗号何时应该存在以及何时不存在,则可以调整逗号。例如:

(?:(?:foo|bar)(?:,(?!$|\s)|))+

关于java - 使用反向引用来引用模式而不是实际匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519375/

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