多个名为regex java的组?

时间:2013-12-21 22:42:51

标签: java regex named-captures

是否有可以在一个模式中接受多个具有相同名称的组的正则表达式api或库?

2 个答案:

答案 0 :(得分:2)

(ab(?<a>[\w]*)|bs(?<a>[\w]*))正则表达式的替代方法是(ab|bs)(?<a>[\w]*),具有相同的名称。使用(ab(?<a>[\w]*)|bs(?<b>[\w]*))(ab|bs)(?<a>[\w]*)在演示链接中查看测试。这些给你相同的结果。

demo

答案 1 :(得分:1)

这是一个非常古老的问题,但谷歌把我带到了这里,我找到了使用/J修饰符 PHP 的解决方案。这里解释了所有细节:http://www.rexegg.com/regex-capture.html#dupe_names

  

在.NET,PCRE(C,PHP,R ...),Perl和Ruby中,您可以使用相同的组   在您的模式中的各个位置命名。 (在PCRE中你需要使用   (?J)修饰符或PCRE_DUPNAMES选项。)在这些引擎中,这个正则表达式   是有效的:

:(?<token>\d+)|(?<token>\d+)#

此处的工作示例https://regex101.com/r/h7HJXj/1