正則表達式的非貪心量化
前言
最近在 [ 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 個,加了"?"後就變成每個數字都是結果了。
沒有留言:
張貼留言