当前位置: 首页 > article >正文

JS 正则表达式 -- 分组【详解】含普通分组、命名分组、反向引用

普通分组

使用圆括号 () 来创建分组捕获匹配的内容,通过正则表达式匹配结果的数组来访问这些捕获的内容。

const str = "Hello, World!";
const regex = /(Hello), (World)!$/;
const match = str.match(regex);

if (match) {
    console.log("完整匹配结果: ", match[0]); 
    console.log("第一个分组结果: ", match[1]); 
    console.log("第二个分组结果: ", match[2]); 
}

命名分组

?<分组名称> 来给分组命名,具体用法如下:

const str = "2024-10-01";
const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const match = str.match(regex);

if (match) {
    console.log("年份: ", match.groups.year); 
    console.log("月份: ", match.groups.month); 
    console.log("日期: ", match.groups.day); 
}

反向引用

在正则表达式内部或替换字符串中使用 \n(n 是分组的编号)来引用之前捕获的分组内容。

const str = "abab";
const regex = /(ab)\1/;
const match = str.match(regex);

if (match) {
    console.log("完整匹配结果: ", match[0]);   // abab
    console.log("第一个分组结果(仅一个分组): ", match[1]);  // ab
}

在替换字符串中使用反向引用

const str = "John Smith";
const regex = /(\w+) (\w+)/;
const newStr = str.replace(regex, "$2, $1");

console.log("替换后的字符串: ", newStr); // Smith, John

http://www.kler.cn/a/518153.html

相关文章:

  • 科技快讯 | 理想官宣:正式收费!WeChat 港币钱包拓宽商户网络;百川智能发布深度思考模型Baichuan-M1-preview
  • 开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
  • opengrok_使用技巧
  • Redis高阶5-布隆过滤器
  • SpringBoot+Vue使用Echarts
  • Linux-day10
  • 豆包 MarsCode + 开源 = ?AI 助力开源社区新人成长
  • JVM学习指南(48)-JVM即时编译
  • 2025美赛数学建模ICM问题F:网络强大?(Problem F: Cyber Strong?)完整文章 模型 数据 源代码 结果分享
  • Jenkins下线实例报错
  • 罗永浩的“最后一次创业”:从AR到AI大模型的战略转型
  • Spring 源码学习(七)——注解后处理器-2
  • SpringBoot支持动态更新配置文件参数
  • 群辉部署集2 Neo4j
  • 一文了解神经网络和模型训练过程
  • java入门基础笔记语法篇(3)
  • 【Qt】05-菜单栏
  • 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析
  • 深入详解监督学习之回归与分类算法的全景视图
  • Spring Boot整合JavaMail实现邮件发送
  • springboot基于Spring Boot的智慧养老服务系统的设计与实现
  • CentOS 上安装 Go (Golang)
  • 正则表达式中常见的贪婪词
  • Nginx入门学习
  • 数据标注开源框架 Label Studio
  • 基于SpringBoot的httpclient实现(高级版)