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

正则表达式的捕获组

是正则表达式中的一个重要概念,用于提取字符串中的特定部分

捕获组是通过正则表达式中的圆括号 () 定义的,它的作用是:

  1. 划分和标记:将正则表达式的一部分划分为逻辑单元。

  2. 提取数据:从字符串中提取符合组内模式的内容。

  3. 后续操作:可以在替换、分析或逻辑处理时使用捕获到的数据。

使用捕获组的基本示例

示例 1:简单的捕获

正则表达式:/Hello (World)/

字符串:Hello World

结果:

  • 完整匹配Hello World

  • 捕获组 1World(即括号中的部分)

const re = /Hello (World)/;
const result = re.exec("Hello World");
console.log(result);
// 输出: ["Hello World", "World"]

 

break down mdn的示例代码

// Match "quick brown" followed by "jumps", ignoring characters in between
// Remember "brown" and "jumps"
// Ignore case
const re = /quick\s(?<color>brown).+?(jumps)/dgi;
const result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
1. 正则表达式的部分解释
  • 整体表达式/quick\s(?<color>brown).+?(jumps)/dgi

    • quick

      • 匹配单词 “quick”,不区分大小写(由于 i 修饰符的作用)。

    • \s

      • 匹配一个空白字符(例如空格)。

    • (?<color>brown)

      • 命名捕获组,匹配单词 “brown” 并将其内容标记为 color。稍后可以通过 result.groups.color 来访问这个内容。

    • .+?

      • 非贪婪模式,匹配任意字符,但尽可能少。

    • (jumps)

      • 普通捕获组,用来匹配单词 “jumps”。

    • 修饰符 dgi

      • d:启用正则表达式调试特性(ES2022)。

      • g:全局匹配。

      • i:忽略大小写。

2. exec 方法如何工作

代码中用到了 exec 方法,这里的功能是用正则表达式逐步匹配输入字符串 "The Quick Brown Fox Jumps Over The Lazy Dog"。让我们分析其运行过程:

  • 第一步:开始匹配正则模式。

    • 匹配到 "Quick"(不区分大小写)。

    • 匹配空格后,找到 "Brown",并将它捕获为 color

    • 接着匹配剩余字符直到 "Jumps"

  • 第二步:生成结果。

    • exec 方法返回一个包含以下内容的数组:

      1. result[0]:完整匹配字符串,例如 "Quick Brown Fox Jumps".

      2. result[1]:普通捕获组的内容,例如 "Jumps".

      3. result.groups.color:命名捕获组的内容,例如 "Brown"

 运行结果如下:

 

http://www.xdnf.cn/news/1347.html

相关文章:

  • 众趣科技X世界读书日丨数字孪生技术赋能图书馆空间智慧化运营
  • TCP四大特性面试回答引导
  • UniOcc:自动驾驶占用预测和预报的统一基准
  • 【华为】防火墙双击热备-之-主备模式-单外网线路
  • MYSQL-库的基本操作
  • 数据结构--AVL树
  • 【问题解决】本机navicat连接云服务器mysql
  • idea无法下载源代码
  • k8s 证书相关问题
  • Python 从PPT文档中提取图片和图片信息(坐标、宽度和高度等)
  • Linux 管道理解
  • 【计算机网络】现代网络技术核心架构与实战解析
  • OCR之身份证识别
  • MinIO 教程:从入门到Spring Boot集成
  • 极狐GitLab 的合并请求部件能干什么?
  • 数据结构-链表
  • OpenGL学习笔记(Blinn-Phong、伽马矫正、阴影)
  • UML2.0中的14种图简介,并借助AI生成UML图
  • 4.23学习总结
  • 【测试报告】幸运闪烁抽奖系统(Java+Selenium+Jmeter自动化测试)
  • 《把握人机共融设计要点,重塑人机协作格局》
  • 如何解决极狐GitLab 合并冲突?
  • 第4天:Linux开发环境搭建
  • 配置Intel Realsense D405驱动与ROS包
  • 配置 Apache 的 HTTPS
  • 一些确保 iPaaS 集成平台与现有系统安全集成的方法
  • 操作系统环境变量
  • 每天五分钟深度学习PyTorch:图像的处理的上采样和下采样
  • Vue3:component(组件:uniapp版本)
  • JavaScript学习教程,从入门到精通,Ajax与Node.js Web服务器开发全面指南(24)