gpt4 book ai didi

java - java.util.regex.Matcher 中的 group() ?

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

String pattern = "(.*)(\\d+)";
while(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}

输入:

This order was placed for QT3000! OK?

输出:

This order was placed for QT300
0

为什么在输出的第一行中不包含第三个0,即QT3000?为什么第二行输出不打印 3000?

最佳答案

这是因为.*这是贪心的,只留下一个 \d对于团体\\d+ .使其不贪婪.*?你会得到你想要的。

.*将匹配到最后一个字符,然后开始回溯,直到找到 \d .所以当它遇到0来自3000当向后退时,它就停在那里。

.*?将在 \d 的第一个实例处停止即3 .所以你会得到3000在你的第二组中。

关于java - java.util.regex.Matcher 中的 group() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30640462/

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