筆記 正則命名捕獲

2021-09-25 15:04:43 字數 1194 閱讀 6814

參考

命名捕獲分組

總結『123』.match(/(1)(2)(3)/),結果中返回乙個滿足條件的字串,然後根據括號對這個字串進行拆分,乙個括號就相當於push()一下

這時候無意義的下標對於後期在失去注釋,或無意義/不全的注釋的狀態下維護,會讓我們的維護增加難度

所以在括號內容前以?《名》的形式增加乙個申明,例如(?1)這樣匹配之後,滿足條件的內容會被以鍵值對的形式,存入groups中,這樣有意義的鍵名,能在開發和維護中方便和輕鬆一點

demo

let str="id=1222&name=王五";

console.log(

str.match(/id=(?\d+)([&\s*]|$)/),

str.match(/name=(?\s+)([&\s]|$)/)

);

返回結果

(3) [「id=1222&」, 「1222」, 「&」, index: 0, input: 「id=1222&name=王五」, groups: ]

0: 「id=1222&」

1: 「1222」

2: 「&」

groups:

index: 0

input: 「id=1222&name=王五」

length: 3

proto: array(0)

(3) [「name=王五」, 「王五」, 「」, index: 8, input: 「id=1222&name=王五」, groups: ]

0: 「name=王五」

1: 「王五」

2: 「」

groups:

index: 8

input: 「id=1222&name=王五」

length: 3

proto: array(0)

我們可以通過結果的.groups[『id』/『name』]獲取id/name值

> console.log(

str.match(/id=(?\d+)([&\s*]|$)/).groups['id'],

str.match(/name=(?\s+)([&\s]|$)/).groups['name']

);//1222 王五

JS 正則中的命名捕獲分組

假設你在一段陌生的 中看到這樣乙個函式 function tolocaldate date d d 2 1 3 單看這個函式你能知道它是想把 日 月 年 替換成 月 日 年 還是反過來?匿名捕獲分組沒法做到這一點,那就該命名捕獲分組上場了 function tolocaldate date d d ...

Grok 正則捕獲

grok 正則捕獲 s d d s 回顧下 pattern 匹 配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用。這在使用 或 字元 來組合乙個模式的各個部分是很有用。例如,industr y ies 就是乙個比 industry industries 更簡略的...

正則的捕獲

正則的捕獲 exec,返回的結果是陣列或null 先看個demo var reg d var str hua123hua456 var result reg.exec str console.dir result 123 index 3,input hua123hua456 console.log ...