Matcher matcher = pattern.matcher(msg); 什么情况下会出现matcher.group(2) 并举例说明
时间: 2024-02-24 19:00:43 浏览: 71
JAVA正则表达式--Pattern和Matcher
4星 · 用户满意度95%
这段代码是在Java中使用正则表达式进行匹配的代码。当使用正则表达式模式去匹配一个字符串时,如果模式中含有子表达式,那么在匹配成功后可以使用`matcher.group()`方法获取子表达式匹配的结果。其中,`matcher.group(0)`表示整个匹配结果,`matcher.group(n)`表示第n个子表达式匹配的结果。
举个例子,假设我们有一个字符串`str = "Hello, my name is John, I am 20 years old."`,我们想要提取其中的名字和年龄。我们可以使用以下的正则表达式模式进行匹配:
```
Pattern pattern = Pattern.compile("my name is (\\w+).*?(\\d+) years old");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String name = matcher.group(1); // "John"
String age = matcher.group(2); // "20"
}
```
在这个例子中,我们使用了两个子表达式,分别是`(\\w+)`和`(\\d+)`,分别用来匹配名字和年龄。当匹配成功后,我们可以使用`matcher.group(1)`获取名字,使用`matcher.group(2)`获取年龄。注意,这里的`matcher.group(0)`表示整个匹配结果,即`"my name is John, I am 20 years old"`。
阅读全文