gpt4 book ai didi

java - Matcher.group() 没有给出正确的输出

转载 作者:行者123 更新时间:2023-12-01 20:20:46 24 4
gpt4 key购买 nike

我有一个简单的程序。

public class RaviTest {

public static void main(String[] args) {
Pattern pattern = Pattern.compile("The test ID is (.*?)");
Matcher matcher = pattern.matcher("The test ID is 152454");
System.out.println(matcher.find());
System.out.println(matcher.group(1));
}
}

我期望该程序的输出是“152454”,但它打印的是空格“”。

如果我尝试打印 matcher.group(0),它会打印“测试 ID 是”。

编辑:

如果我使用 matcher.matches() 而不是 matcher.find(),它会正确打印。

请帮助我理解我哪里出了问题。

最佳答案

* 匹配 0 次到无限次,而 ? 使其变得懒惰,这意味着它将尝试匹配尽可能少的次数,因此在本例中,.*? 将始终匹配空字符串。

您可以尝试删除 ? 以使其变得贪婪,或者仅将 *? 替换为 + 以使其在 1 和无限之间匹配次。

关于java - Matcher.group() 没有给出正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44794356/

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