2022年5月23日 星期一

正則表達式的非貪心量化

 正則表達式的非貪心量化

前言

  最近在 [ 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 個,加了"?"後就變成每個數字都是結果了。


參考資料

[ zh.wikipedia.org ] 正規表示式


沒有留言:

張貼留言