java - 下面这两个有什么区别?

标签 java regex

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/

相关文章:

python - 这个带有正则表达式的 python 代码成功删除了 URL,但如果在推文开头找到 URL,则所有句子也将被删除

Java导入静态错误

java - 防止程序员获取类实例的锁

java - 在Java中使用Split并将结果子字符串化

regex - 替换(屏蔽)HIVE 中的特定值

C++ 正则表达式不匹配空格

Java RegEx 乐趣 - 玩转句子

java - 如果括号匹配则返回 true 的 boolean 方法

java - 获取两个不同的类实例并比较它们(Java)

java - 无法从 Java 连接到仅支持 IPv6 的主机