System.out.println(matcher.group(1));
System.out.println(matcher.group());
我想知道上面两个代码有什么区别。我得到不同的输出。有人可以详细说明一下吗?
谢谢
最佳答案
调用 group()
给你匹配的整个字符串,而 group(1)
给你第一个带括号的“Capturing”组(或者更一般地说, group(n)
将为您提供第 n'th 个捕获组,从 1 开始计算左括号/左括号)。
例如,如果您有这样的输入字符串:
The quick brown fox
并且您匹配了以下正则表达式(不带引号):
"The (\\w+)"
然后 group()
会给你“The quick”,而 group(1)
会给你“quick”。
有关所有这些正则表达式如何在 Java 中工作的更多详细信息,请参阅 java.util.regex.Matcher
Java文档。
关于java - 下面这两个有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2420655/