2022年4月4日 星期一

關於正規表達式的括弧

 關於正規表達式的括弧

前言

  最近發現正規表達式的括弧有"標記"的作用,在此把學習的過程做個紀錄。


內容

  範例如下

const reg = /(\d+)_(\d+)/dg;
let s = '123_456,12_34';
for( const match of s.matchAll(reg) ){
  console.log(match.indices );
}
//result
//[[0, 7], [0, 3], [4, 7]]
//[[8, 13], [8, 10], [11, 13]]


先看到範例的第一個結果,陣列會先回傳整個符合正規表達式的結果,接著結果陣列還會有兩個結果,這兩個結果會對應到正規表達式裡的兩個括弧,它代表著括弧的開頭和結束指標,利用這個括弧的特性就可以取得"123"與"456"的位址,如果將原本的正規表達式的括弧移除,一樣可以做到整個結果的比對,但無法取得"123"與"456"的位址,括弧就像"標記"一樣,可以取得要比對的內容裡的特定字串的位址,搭配 JavaScript 2022 在正規表達式的新標準 的用法可以不只比對結果還可快速找到結果的特定字串。


參考資料

[ developer.mozilla.org ] 正規表達式


相關文章與資料

JavaScript 2022 在正規表達式的新標準

沒有留言:

張貼留言