gpt4 book ai didi

java - 非捕获组 java 正则表达式

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

我看到了这个帖子 What is a non-capturing group? What does a question mark followed by a colon (?:) mean?

我认为下面的方法会起作用,但它不...

我有一个字符串 "Game No : 432543254\n"

Pattern p = Pattern.compile("(?:Game No : )[0-9]*?(\n)");
Matcher m = p.matcher(curr);
m.find();
System.out.print(m.group());

但是上面的代码打印了整个字符串,而不仅仅是我想要的数字

最佳答案

非捕获组不捕获,但仍然匹配字符串。此外,您的模式中的数字和换行符之间有一个空格,因此它不会匹配。

要获取数字,您可以在数字匹配模式周围使用捕获组,如下所示:

Pattern p = Pattern.compile("Game No : ([0-9]+)");
Matcher m = p.matcher(curr);
if (m.find()) {
System.out.print(m.group(1));
}

参见 Java demo

或者,使用非正则表达式解决方案,只需使用 : 拆分并获取结果数组的第二项并对其进行修剪。

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

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