Matcher group方法

在Java中,`Matcher` 类的 `group` 方法用于捕获由正则表达式匹配的文本。以下是 `group` 方法的一些常见用法和说明:

### 基本语法:

```java
public String group()
public String group(int group)
```

- `group()`:返回匹配整个正则表达式的输入字符串。
- `group(int group)`:返回由正则表达式中的捕获组匹配的输入字符串。组号从1开始,0 表示整个表达式。

### 返回值:

- 返回 `String` 类型,即匹配的文本或捕获组中的文本。

### 示例用法:

假设我们有以下正则表达式和输入字符串:

```java
String regex = "(\\w+)@(\\w+)\\.com";
String input = "[email protected]";
```

我们可以使用 `Pattern` 和 `Matcher` 来匹配输入字符串,并使用 `group` 方法获取捕获组:

```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatcherGroupExample {
    public static void main(String[] args) {
        String regex = "(\\w+)@(\\w+)\\.com";
        String input = "[email protected]";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        if (matcher.find()) {
            // 获取整个匹配的字符串
            String fullMatch = matcher.group();
            System.out.println("Full match: " + fullMatch);

            // 获取第一个捕获组(用户名)
            String username = matcher.group(1);
            System.out.println("Username: " + username);

            // 获取第二个捕获组(域名)
            String domain = matcher.group(2);
            System.out.println("Domain: " + domain);
        }
    }
}
```

在这个示例中:

- `matcher.find()` 用于查找输入字符串中与正则表达式匹配的部分。
- `matcher.group()` 返回整个匹配的字符串,即 "[email protected]"。
- `matcher.group(1)` 返回第一个捕获组匹配的字符串,即 "test"。
- `matcher.group(2)` 返回第二个捕获组匹配的字符串,即 "example"。

### 注意事项:

- 如果没有找到匹配项,`group` 方法将返回 `null`。
- 捕获组的索引从1开始,而不是0。组0始终表示整个正则表达式的匹配结果。
- 如果正则表达式中没有定义捕获组,或者捕获组没有匹配任何内容,`group(int group)` 将返回 `""`(空字符串)。

使用 `group` 方法可以方便地从匹配结果中提取所需的信息。
 

public class Test2 {
    public static void main(String[] args) {
        String htmlText = "百度一下

" + "good

" + "
奥利给
" + "
  • li标签
  • "; //正则表达式字符串 //匹配所有便签对中的文本 String allText = ">([^<]+)<"; Pattern compile = Pattern.compile(allText); Matcher matcher = compile.matcher(htmlText); while (matcher.find()) { String textContent = matcher.group(1); // 获取捕获组1的内容 System.out.println(textContent); } } }

    你可能感兴趣的:(java,java)