正則表達式非貪婪匹配

一、正則表達式里非貪婪模式

正則表達式里非貪婪模式就是在匹配字符串時,儘可能少地匹配字符。在正則表達式中,非貪婪模式可以通過在量詞後面加上問號“?”來實現。

const str = "hello world";
const reg = /l.*?o/; // 等價於 /l.*o?/
const result = str.match(reg);
console.log(result); // ["lo"]

上面代碼中,正則表達式 /l.*?o/ 是非貪婪模式,它在匹配字符串 “hello world” 時,儘可能少地匹配字符。

二、正則表達式中表達非貪婪匹配

正則表達式中表達非貪婪匹配,可以通過在量詞後面加上問號“?”來達到非貪婪匹配的效果。在實際應用中,非貪婪模式通常會配合其他正則表達式元字符或者組合使用。

比如要匹配字符串 “a1b2c3d4” 中的數字,可以使用如下正則表達式:

const str = "a1b2c3d4";
const reg = /\d+?/;
const result = str.match(reg);
console.log(result); // ["1"]

上面代碼中,正則表達式 /\d+?/ 是貪婪模式,它在匹配字符串 “a1b2c3d4” 時,儘可能少地匹配數字。

三、如何表示非貪婪匹配

表示非貪婪匹配,可以通過在量詞後面加上問號“?”來達到非貪婪匹配的效果。

非貪婪模式和貪婪模式的區別在於,非貪婪模式儘可能少地匹配字符,而貪婪模式儘可能多地匹配字符。

四、正則表達式的非貪婪匹配

正則表達式的非貪婪匹配就是在匹配字符時,儘可能少地匹配字符,可以通過在量詞後面加上問號“?”來實現。

非貪婪模式通常會取代貪婪模式,因為非貪婪模式可以防止貪婪模式過度匹配字符。

五、正則表達式非匹配

正則表達式非匹配是指在匹配字符串時,匹配不包含某些字符或者某些字符串的內容。在正則表達式中,可以使用負向預查來實現非匹配。

比如要匹配字符串 “hello world, hello earth” 中除了 “world” 外的所有內容,可以使用如下正則表達式實現:

const str = "hello world, hello earth";
const reg = /hello\s(?!world).*?/;
const result = str.match(reg);
console.log(result); // ["hello earth"]

在上面的正則表達式中,使用了負向預查 (?!world) 來表示不匹配字符串 “world”。這裡需要注意的是,負向預查只會匹配不包含 “world” 的字符串,而不是整個字符串 “hello world, hello earth”。

六、正則表達式貪婪模式

正則表達式貪婪模式是指在匹配字符串時,儘可能多地匹配字符。在正則表達式中,貪婪模式可以通過量詞後面不加問號來實現。

比如要匹配字符串 “hello world” 中的 “llo wo”,可以使用如下正則表達式實現:

const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]

在這個正則表達式中,使用了貪婪模式,它在匹配字符時,儘可能多地匹配字符。

七、正則表達式匹配數字

在正則表達式中,可以使用元字符 \d 來表示匹配數字。

比如要匹配字符串 “a1b2c3d4” 中的數字,可以使用如下正則表達式實現:

const str = "a1b2c3d4";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["1"]

在這個正則表達式中,使用了元字符 \d 來表示匹配數字。

八、正則表達式懶惰匹配

正則表達式懶惰匹配是指在匹配字符串時,儘可能少地匹配字符。在正則表達式中,懶惰模式可以通過在量詞後面加上問號“?”來實現。

比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正則表達式實現:

const str = "hello world";
const reg = /l.*?o/;
const result = str.match(reg);
console.log(result); // ["llo"]

在這個正則表達式中,使用了懶惰模式,它在匹配字符時,儘可能少地匹配字符。

九、正則表達式貪心匹配

正則表達式貪心匹配是指在匹配字符串時,儘可能多地匹配字符。在正則表達式中,貪心模式可以通過量詞後面不加問號來實現。

比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正則表達式實現:

const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]

在這個正則表達式中,使用了貪心模式,它在匹配字符時,儘可能多地匹配字符。

十、正則表達式匹配非負整數

在正則表達式中,可以使用元字符 \d 和量詞 + 來表示匹配非負整數。

比如要匹配字符串 “123” 中的非負整數,可以使用如下正則表達式實現:

const str = "123";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["123"]

在這個正則表達式中,使用了元字符 \d 和量詞 + 來表示匹配非負整數。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257806.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:46
下一篇 2024-12-15 12:47

相關推薦

  • Python正則表達式search()和match()有什麼區別?

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

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

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

    編程 2025-04-27
  • 詳解 IP 正則表達式

    一、IP 地址基礎知識 在講解 IP 的正則表達式前,我們先來了解一下 IP 地址的基礎知識。IP 是 Internet Protocol 的縮寫,用於標識網絡中的設備。IP 地址…

    編程 2025-04-24
  • 深入理解grep正則表達式

    一、grep的基本用法 grep命令是Linux系統中最常用的命令之一,它可以在文件中查找特定的文本模式,非常方便。grep命令的基本用法: grep ‘pattern’ file…

    編程 2025-04-24
  • sed正則表達式深度解析

    一、sed正則表達式 sed(stream editor)是一個基於行的文本編輯器,它可以執行基本的文本轉換功能,其中包含正則表達式的匹配和替換功能。在sed中,正則表達式被廣泛應…

    編程 2025-04-23
  • 身份證號碼正則表達式詳解

    一、身份證號碼的基礎結構 身份證號碼是由18個字符組成的,分為前17位和最後一位校驗位。而校驗位的計算方法是經過公式計算得來的,可以確定身份證號碼是否錯誤。其中,前6位是地區碼,接…

    編程 2025-04-23
  • 正整數的正則表達式

    在編程開發過程中,我們經常需要進行一些數據驗證操作,以確保用戶輸入的數據符合一定的格式和規範。而正則表達式就是一個非常強大的工具,可以幫助我們快速、準確地檢查和過濾數據。本文將從多…

    編程 2025-04-23
  • 正則表達式不包含某個字符串

    一、正則表達式基礎 正則表達式是一種用來匹配字符串的工具。它通過定義一個規則來匹配符合該規則的特定文本,這樣就可以對想要匹配的字符串進行過濾或者替換操作。正則表達式中包括了一些特殊…

    編程 2025-04-12
  • 身份證正則表達式詳細闡述

    一、身份證正則表達式 身份證號碼是中國公民的唯一身份標識,其格式是18位純數字或17位數字加1位大寫字母X。身份證正則表達式使用正則表達式來描述此格式,以進行身份證號碼的合法性校驗…

    編程 2025-04-12
  • 深入探究車牌號正則表達式

    一、正則表達式的基本概念 正則表達式是一種非常強大的文本處理工具,通過一系列的字符、符號和特殊字符的組合,可以方便地進行字符串的匹配、查找、替換等操作。正則表達式通常被用於編寫規則…

    編程 2025-04-12

發表回復

登錄後才能評論