gpt4 book ai didi

java - 识别正则表达式模式中的捕获组

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

在 Java 中有没有一种方法(可能有一个额外的开源库)来识别 java.util.regex.Pattern 中的捕获组(即在创建匹配器之前)

Java 文档中的示例:

Capturing groups are numbered by counting their opening parentheses from left to right. In the expression ((A)(B(C))), for example, there are four such groups:

1         ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)

原则上应该可以从(编译的)模式中识别出这些。

更新:从@Leniel 和 eslewhere 看来,这个设施(“命名组”)将在 2011 年年中出现在 Java 7 中。如果我等不及了,我可以使用 jregex,尽管我不太确定 API 是什么。

最佳答案

您可以通过创建虚拟匹配器来找出组的数量,如下所示:

Pattern p = Pattern.compile("((A)(B(C)))");
System.out.println(p.matcher("").groupCount());

如果您想要实际的子表达式(((A)(B(C)))(A) 等),那么不,该信息是不可用。

关于java - 识别正则表达式模式中的捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589643/

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