正则表达式 分组

来自姬鸿昌的知识库
Jihongchang讨论 | 贡献2022年11月18日 (五) 06:09的版本
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1Eq4y1E79W?p=13

常用分组构造形式 说明
(pattern) 非命名捕获。捕获匹配的子字符串。

编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其它捕获结果则根据左括号的顺序从1开始自动编号

(?<name>pattern) 命名捕获。将匹配的子字符串捕获到一个组名称或编号名称中。

用于name的字符串不能包含任何标点符号,并且不能以数字开头。

可以使用单引号替代尖括号,例如(?'name')

对比示例:应用分组前

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

public class RegExp07 {

    public static void main(String[] args) {

        String content = "hanshunping s7789 nn1189han";

        String regStr = "\\d\\d\\d\\d"; //匹配4个数组的字符串

        Pattern pattern = Pattern.compile(regStr);

        Matcher matcher = pattern.matcher(content);

        while (matcher.find()) {

            System.out.println("找到:" + matcher.group(0));

        }
    }
}
找到:7789
找到:1189