正則表達式的捕獲組

是正則表達式中的一個重要概念,用于提取字符串中的特定部分

捕獲組是通過正則表達式中的圓括號 () 定義的,它的作用是:

  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.pswp.cn/pingmian/78330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78330.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

deepseek-cli開源的強大命令行界面,用于與 DeepSeek 的 AI 模型進行交互

一、軟件介紹 文末提供程序和源碼下載 deepseek-cli一個強大的命令行界面&#xff0c;用于與 DeepSeek 的 AI 模型進行交互。 二、Features 特征 Multiple Model Support 多模型支持 DeepSeek-V3 (deepseek-chat) DeepSeek-R1 &#xff08;deepseek-reasoner&#xff09;Dee…

Java—— 五道算法水題

第一題 需求&#xff1a; 包裝類&#xff1a;鍵盤錄入一些1~100之間的整數&#xff0c;并添加到集合中。直到集合中所有數據和超過200為止 代碼實現&#xff1a; import java.util.ArrayList; import java.util.Scanner;public class Test1 {public static void main(String[]…

安全編排自動化與響應(SOAR):從事件響應到智能編排的技術實踐

安全編排自動化與響應&#xff08;SOAR&#xff09;&#xff1a;從事件響應到智能編排的技術實踐 在網絡安全威脅復雜度指數級增長的今天&#xff0c;人工處理安全事件的效率已難以應對高頻攻擊&#xff08;如日均萬級的惡意IP掃描&#xff09;。安全編排自動化與響應&#xf…

網絡原理 - 9

目錄 數據鏈路層 以太網 以太網幀格式 MAC 地址 DNS&#xff08;Domain Name System&#xff09; 完&#xff01; 數據鏈路層 這里的內容也是簡單了解&#xff0c;除非是做交換機開發&#xff0c;一般程序員不需要涉及~~ 以太網 ”以太網“不是一種具體的網絡&#xf…

unity bug

發現一個奇怪的bug&#xff0c;就是某些unity版本打包apk時候不允許StreamingAssets里面有中文文件或者中文路徑。比如下圖這面這倆都是不行的。 解決方案&#xff1a;中文改為英文即可。 一般報錯信息如下&#xff1a; > Configure project :launcher WARNING:The option s…

【Linux網絡】打造初級網絡計算器 - 從協議設計到服務實現

&#x1f4e2;博客主頁&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客倉庫&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01; &…

計算機視覺——對比YOLOv12、YOLOv11、和基于Darknet的YOLOv7的微調對比

概述 目標檢測領域取得了巨大進步&#xff0c;其中 YOLOv12、YOLOv11 和基于 Darknet 的 YOLOv7 在實時檢測方面表現出色。盡管這些模型在通用目標檢測數據集上表現卓越&#xff0c;但在 HRSC2016-MS&#xff08;高分辨率艦船數據集&#xff09; 上對 YOLOv12 進行微調時&…

?MySQL 事務隔離級別詳解

? 以下是 MySQL 支持的四種事務隔離級別及其特性&#xff0c;按并發安全性從低到高排列&#xff1a; ?1. 讀未提交 (Read Uncommitted)? ?問題?&#xff1a; ?臟讀 (Dirty Read)?&#xff1a;事務可讀取其他事務未提交的數據。?不可重復讀 (Non-repeatable Read)?&am…

如何解決IDE項目啟動報錯 error:0308010C:digital envelope routines::unsupported 問題

如何解決IDE項目啟動報錯 error:0308010C:digital envelope routines::unsupported 問題 在現代軟件開發過程中&#xff0c;開發人員通常使用集成開發環境&#xff08;IDE&#xff09;如IntelliJ IDEA、Visual Studio Code&#xff08;VSCode&#xff09;等進行Node.js項目開發…

2025最新Facefusion3.1.2使用Docker部署,保姆級教程,無需配置環境

Docker部署Facefusion 環境 windows10 Facefusion3.1.2 安裝 拉取源代碼 git clone https://github.com/facefusion/facefusion-docker.git 此處如果拉不下來&#xff0c;需要科學上網&#xff0c;不會的可以找我。 運行容器 將Dockerfile.cpu文件中的的From python:3.…

docker容器監控自動恢復

關于實現對docker容器監控以及自動恢復&#xff0c;這里介紹兩種實現方案。 方案1&#xff1a; 實現思路&#xff1a; 找到&#xff08;根據正則表達式&#xff09;所有待監控的docker容器&#xff0c;此處篩選邏輯根據docker運行狀態找到已停止&#xff08;Exit&#xff09;類…

HackMyVM - Chromee靶機

HackMyVM - chromee靶機https://mp.weixin.qq.com/s/hF09_24PRXpx_lmB6dzWVg

Cursor中調用本地大語言模型

引言 隨著大語言模型(LLM)技術的快速發展&#xff0c;越來越多的開發者希望在本地環境中運行這些強大的AI模型&#xff0c;以獲得更好的隱私保護、更低的延遲以及不依賴網絡連接的使用體驗。Cursor作為一款面向開發者的AI增強編輯器&#xff0c;提供了與本地大語言模型集成的功…

青少年CTF-貪吃蛇

題目描述&#xff1a; 進入賽題頁面&#xff1a; 按F12&#xff0c;查看源代碼&#xff0c; 可以看到是當分數大于或等于10000時&#xff0c;獲得flag&#xff0c;值已經給出&#xff0c;直接引用就可以&#xff0c;check_score.php?score${score}&#xff0c;這里將${score}換…

亞馬遜測評老砍單?了解過全新自養號系統嗎?

以全球電商巨頭亞馬遜為例&#xff0c;其風控技術的進化堪稱一部永不停歇的“升級史”。然而&#xff0c;令人遺憾的是&#xff0c;不少賣家和測評服務商卻依舊沉浸在過去的“舒適區”&#xff0c;過度依賴指紋瀏覽器、luminati等傳統技術手段。這些曾經行之有效的工具&#xf…

module.noParse(跳過指定文件的依賴解析)

1. 說明 module.noParse 是 Webpack 的一個配置項&#xff0c;用于跳過對指定模塊的解析。通過忽略某些文件的依賴分析&#xff0c;可以提升構建速度&#xff0c;尤其適用于處理大型、獨立的第三方庫 2. 使用配置 webpakc.config.js const path require(path); module.exp…

什么是爬蟲?——從技術原理到現實應用的全面解析 V

什么是爬蟲?——從技術原理到現實應用的全面解析 V 二十一、云原生爬蟲架構設計 21.1 無服務器爬蟲(AWS Lambda) # lambda_function.py import boto3 import requests from bs4 import BeautifulSoups3 = boto3.client(s3)def lambda_handler(event, context):# 抓取目標…

Web滲透之系統入侵與提權維權

滲透測試步驟 信息收集 搜集一些IP地址以及對應的端口開放情況&#xff0c;看看是否有80、3306、22等等端口開放&#xff0c;以及操作系統和版本號&#xff0c;同時也要掃描可能存在的漏洞 漏洞利用 建立據點 漏洞利用成功后&#xff0c;通常會在目標機上獲得一個webshell&…

【數論分塊】數論分塊算法模板及真題

1.數論分塊的含義 數論分塊算法&#xff0c;就是枚舉出使得取整函數發生變化的地方。 例如&#xff0c;對表達式 ? n i ? \lfloor \frac{n}{i} \rfloor ?in??使用數論分塊算法&#xff0c;就可以在 O ( n ) O(\sqrt n) O(n ?)的時間復雜度下枚舉所有滿足 ? n i ? 1 ?…

SpringBoot 常用注解通俗解釋

SpringBoot 常用注解通俗解釋 一、啟動類相關 1. SpringBootApplication ? 作用&#xff1a;這是SpringBoot項目的"總開關"&#xff0c;放在主類上 ? 通俗理解&#xff1a;相當于對電腦說&#xff1a;"開機&#xff01;我要用SpringBoot了&#xff01;…