正則表達式的非貪心量化
前言
最近在 [ zh.wikipedia.org ] 正規表示式 裡發現非貪心量化的寫法,在此把學習的過程做個紀錄。
內容
範例如下
const reg = /\d+?/dg;
let s = '123_456,12_34';
for( const match of s.matchAll(reg) ){
console.log(match.indices );
}
//Result
//[[0, 1]]
//[[1, 2]]
//[[2, 3]]
//[[4, 5]]
//[[5, 6]]
//[[6, 7]]
//[[8, 9]]
//[[9, 10]]
//[[11, 12]]
//[[12, 13]]
所謂的非貪心量化是指在 + 、 * 、 ? 與 {,}的後方再加一個"?"這樣可以打搜尋的結果分割成每一個符合條件的個體,範例如果只使用"\d+"的話,搜尋的結果只會有 4 個,加了"?"後就變成每個數字都是結果了。
沒有留言:
張貼留言