System.out.println(matcher.group(1));
System.out.println(matcher.group());
我想知道上述两个代码之间的区别。我得到不同的输出。任何人都可以详细说明这个吗?
由于
答案 0 :(得分:8)
对group()
的调用会为您提供匹配的完整字符串,而group(1)
会为您提供第一个带括号的“捕获”组(或更一般地,group(n)
将为您提供 n'th 捕获组,从1开始计算左/左括号。
例如,如果你有一个像这样的输入字符串:
The quick brown fox
你匹配下面的正则表达式(没有引号):
"The (\\w+)"
然后group()
会给你“快速”,group(1)
会给你“快速”。
有关所有这些正则表达式在Java中如何工作的更多详细信息,请参阅java.util.regex.Matcher
JavaDoc。
答案 1 :(得分:2)
答案 2 :(得分:1)
API doc是一个非常好看的地方。