gpt4 book ai didi

java - 正则表达式未捕获预期组

转载 作者:行者123 更新时间:2023-12-01 09:17:33 25 4
gpt4 key购买 nike

对于这个输入字符串,我认为 group[1] 应该是“xyz”,group[2] 应该是“ab”。

String p = "(.+)\\s(ab|cd|efg)";

Pattern pattern = Pattern.compile(p);

String str = "xyz ab";

Matcher m = pattern.matcher(str);

System.out.println(m.group(1));
System.out.println(m.group(2));

最佳答案

你必须调用m.find()

String p = "(.+)\\s(ab|cd|efg)";

Pattern pattern = Pattern.compile(p,Pattern.DOTALL);

String str = "xyz ab";

Matcher m = pattern.matcher(str);

if (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}

find() 将尝试查找输入序列中与模式匹配的下一个子序列。

输出:

xyz
ab

您还可以在获取组之前调用m.matches();,而不是if (m.find()),但使用是一个很好的做法>find()matches()if 来验证找到的匹配

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

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