gpt4 book ai didi

java - 任何人都知道正则表达式中的哪一组实际上在做匹配工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:44 25 4
gpt4 key购买 nike

假设我有一个像下面这样的正则表达式: {“(第 1 组)|(第 2 组)(第 3 组)|....(第 n 组)”}匹配一个输入的String对象,如果匹配成功,我怎么知道上面n组中哪一组是真正匹配这个String对象的呢?我使用的是 java.util 中的正则表达式库。谢谢你们。

最佳答案

这里有一个方法:

import java.util.regex.*;

public class Test {
public static void main(String[] args) {
String text = "12 ab ^&";
String regex = "(\\d+)|([a-z]+)|(\\p{Punct}+)";
Matcher m = Pattern.compile(regex).matcher(text);
while(m.find()) {
System.out.println("\nmatched text: "+m.group());
for(int i = 1; i <= m.groupCount(); i++) {
System.out.println(" group "+i+"? "+(m.group(i) != null));
}
}
}
}

输出:

matched text: 12
group 1? true
group 2? false
group 3? false

matched text: ab
group 1? false
group 2? true
group 3? false

matched text: ^&
group 1? false
group 2? false
group 3? true

关于java - 任何人都知道正则表达式中的哪一组实际上在做匹配工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200089/

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