下面这两个有什么区别?

时间:2010-03-10 21:17:22

标签: java regex

System.out.println(matcher.group(1));
System.out.println(matcher.group());

我想知道上述两个代码之间的区别。我得到不同的输出。任何人都可以详细说明这个吗?

由于

3 个答案:

答案 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)

我指出Matcher

的JavaDocs

组():

  

返回上一个匹配

匹配的输入子序列

组(INT):

  

返回上一个匹配操作期间给定组捕获的输入子序列。

答案 2 :(得分:1)

API doc是一个非常好看的地方。