正則表達式不包含的應用和技巧

一、使用(?!)排除某個字元串

//示例代碼:
let str = "I love coding! But I don't like debugging.";
let reg = /coding(?!ing)/g;
let result = str.replace(reg, "write");
console.log(result);

//輸出:"I love write! But I don't like debugging."

正則表達式不包含的最基本用法是使用(?!)語法,在匹配時排除某個字元串。比如,我們想要找到所有「coding」單詞,但不包括「coding」後面的「ing」時,可以這樣寫:coding(?!ing)

這裡的(?!是一個非捕獲組,表示在coding後面不應該跟著ing。這樣我們就可以找到所有「coding」單詞,但不包括「coding」後面的「ing」部分。

二、使用(?=)匹配符合條件的單詞

//示例代碼:
let str = "My favorite fruit is apple.";
let reg = /\b[a-z]+\b(?= \bapple\b)/g;
let result = str.match(reg);
console.log(result);

//輸出:["favorite"]

與使用(?!)正好相反,我們也可以使用(?=)語法來查找符合特定條件的單詞,比如在一段文本中找到與單詞「apple」組合使用的單詞。

在上面的示例中,我們使用正則表達式\b[a-z]+\b(?= \bapple\b),其中(?= \bapple\b)表示匹配包含「apple」的單詞且該單詞前面的單詞是任意大小寫字母構成的單詞,\b表示單詞邊界,[a-z]+表示至少一個小寫字母組成的單詞。

三、使用模式拼接多個正則表達式

//示例代碼:
let str = "

Regex is amazing!

"; let reg1 = //g; let reg2 = /[^a-zA-Z]+/g; let result = str.replace(reg1, "").replace(reg2, " "); console.log(result); //輸出:"Regex is amazing"

正則表達式不包含還可以用於模式拼接,將多個正則表達式拼接起來實現特定的功能。比如,我們想要將HTML標籤和標點符號都刪除並只保留單詞,可以將多個正則表達式拼接起來使用。

在上面的示例中,我們使用兩個正則表達式//g/[^a-zA-Z]+/g,將HTML標籤和標點符號刪除,並只留下單詞部分。

四、使用負向預查匹配

//示例代碼:
let str1 = "ab1cd2ef3";
let reg1 = /\d+(?=[a-z])/;
let result1 = str1.match(reg1);
console.log(result1);

let str2 = "abcABC123";
let reg2 = /\w+(?!123)/;
let result2 = str2.match(reg2);
console.log(result2);

//輸出:["2"] 和 ["abcABC"]

負向預查匹配是指匹配一個字元,除非這個字元的後面緊跟著指定的模式。在正則表達式中使用(?!...)即可實現負向預查匹配。

在上面的示例中,/\d+(?=[a-z])可以匹配數字後面跟著字母的部分,如「2e」;/\w+(?!123)/則可以匹配除了以「123」結尾的單詞,如「abcABC」。

五、使用(?<=)匹配以某個字元結尾的單詞

//示例代碼:
let str = "First one, second, third.";
let reg = /(?<=, )\b[a-z]+\b/g;
let result = str.match(reg);
console.log(result);

//輸出:["second", "third"]

與使用(?!)和(?=)正好相反,我們還可以使用(?<=)語法來查找以某個字元結尾的單詞。這裡的(?<=...)表示匹配前面是…的部分,並在這個部分後面匹配符合條件的單詞。

在上面的示例中,我們使用正則表達式/(?<=, )\b[a-z]+\b/g,其中(?<=, )表示匹配以逗號和空格結尾的單詞,\b表示單詞邊界,[a-z]+表示至少一個小寫字母組成的單詞。

原創文章,作者:HPDWB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332469.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HPDWB的頭像HPDWB
上一篇 2025-01-24 18:46
下一篇 2025-01-24 18:46

相關推薦

  • 使用vscode建立UML圖的實踐和技巧

    本文將重點介紹在使用vscode在軟體開發中如何建立UML圖,並且給出操作交互和技巧的指導。 一、概述 在軟體開發中,UML圖是必不可少的重要工具之一。它為軟體架構和各種設計模式的…

    編程 2025-04-29
  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字元串中搜索匹配正則表達式的位置,但它們有著不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • 優秀周記1000字的撰寫思路與技巧

    優秀周記是每個編程開發工程師記錄自己工作生活的最佳方式之一。本篇文章將從周記的重要性、撰寫思路、撰寫技巧以及周記的示例代碼等角度進行闡述。 一、周記的重要性 作為一名編程開發工程師…

    編程 2025-04-28
  • 堆疊圖配色技巧分享

    堆疊圖是數據可視化中常用的一種表現形式,而配色則是影響堆疊圖觀感和傳達信息的重要因素之一。本文將分享一些堆疊圖配色的技巧,幫助你創造更好的數據可視化。 一、色彩搭配原則 色彩是我們…

    編程 2025-04-27
  • 使用uring_cmd提高開發效率的技巧

    對於編程開發工程師來說,提高效率一直是致力追求的目標。本文將深度解析如何使用uring_cmd,提升工作效率。 一、常用命令 uring_cmd是一個非常強大的命令行工具,但是大部…

    編程 2025-04-27
  • 通信專業Python和Java的開發技巧

    本文旨在介紹通信專業Python和Java的開發技巧,為讀者提供實用且可操作的思路和方法。 一、Python在通信領域中的應用 Python是一種優秀的程序設計語言,因其易學易用、…

    編程 2025-04-27
  • 前端引用字體的實現方法和技巧

    對於前端開發人員而言,字體關系著網站的整體美觀度和用戶體驗。為了滿足客戶,開發人員經常需要引用特定的字體。在這篇文章中,我們將會詳細解決前端引用字體的實現方法和技巧。 一、字體引用…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字元串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字元串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • if not in case – Python中使用if語句進行邏輯判斷的技巧

    if語句是Python中進行邏輯判斷的基礎語句之一。在if語句中,我們可以使用not關鍵字和in關鍵字來進行更加靈活的判斷。本文將詳細介紹Python中使用if not in ca…

    編程 2025-04-27
  • JavaScript中修改style屬性的方法和技巧

    一、基本概念和方法 style屬性是JavaScript中一個非常重要的屬性,它可以用來控制HTML元素的樣式,包括顏色、大小、字體等等。這裡介紹一些常用的方法: 1、通過Java…

    編程 2025-04-25

發表回復

登錄後才能評論