程序员的知识教程库

网站首页 > 教程分享 正文

【JS 正则表达式 四】具名捕获组(补充)

henian88 2025-04-26 18:21:04 教程分享 9 ℃ 0 评论

在正则表达式里经常会使用到分组模式,如果分组比较多,读写和维护不太方便,因此具名分组就比较适用了。今天学习一下正则表达式的具名捕获组:

具名捕获组

  • 它允许你为捕获组指定一个名称,以便在匹配成功后可以通过名称来引用捕获的内容。
  • 具名捕获组可以提高正则表达式的可读性和可维护性,特别是在处理复杂的正则表达式时。
  • 语法:(?<name>pattern),name便是捕获组的指定的名称


  • 示例1 获取捕获组的值
//示例一
const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const match = regex.exec('2020-04-01');

console.log(match.groups.year); // 输出: 2020
console.log(match.groups.month); // 输出: 04
console.log(match.groups.day); // 输出: 01



  • 示例2 提取文本
//提取文本内所有日期
let dates = `
    aa 2024-01-01 sfdsdf,
    dsd 2024-01-02 dfsdf,
    dfsd 2024-01-03 sdd,
    adfsd 2024-01-04 dd,
    aa 2024-01-05 fff,
`;

//gm 	全局换行匹配
const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<>\d{2})/gm;
const match = regex.exec(dates);

do {
  console.log(`year: ${match.groups.year} ,months:${match.groups.month} ,day:${match.groups.day}`);
} while ((match = regexp.exec(dates)) !== null);


// year: 2024 ,months:01 ,day:01
// year: 2024 ,months:01 ,day:02
// year: 2024 ,months:01 ,day:03
//year: 2024 ,months:01 ,day:04
//year: 2024 ,months:01 ,day:05



结合match方法,通过匹配成功之后返回的对象的groups属性可用很直观的分组信息

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表