關於正規表達式的括弧
前言
最近發現正規表達式的括弧有"標記"的作用,在此把學習的過程做個紀錄。
內容
範例如下
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 ] 正規表達式
沒有留言:
張貼留言