→ microloft: 簡單說就是group內一旦有match,|後面的都會同時被捨棄 11/15 14:49
→ microloft: 不會再回頭嘗試其他選項了 11/15 14:49
謝謝microloft大大
而
(?<!{) 是 negative lookbehind
[0-9]+ 是 正整數
(\.[0-9]+)? 是 有無小數點
(?!}) 是 negative lookahead
經典範例沒有 | (alternation)
為何加了 ?> (Atomic Group) 可以不匹配到 7 呢?
推 LPH66: + 的 greedy 性表示第一波進去吃到 70 後退出, 這時 "70" 11/15 18:59
→ LPH66: 被 atomic group 抓住了, 表示之後若失敗則不會退回其中 11/15 19:00
→ LPH66: 然後 (?!}) 失敗了, 所以退後, 因上述理由不會再試只取 7 11/15 19:01
→ LPH66: 的狀況, 因此就不會匹配到單 7 了 (被 atomic group 丟掉) 11/15 19:01
→ LPH66: 跟 alternation 的相似性在於 atomic group 裡有不只一種 11/15 19:03
→ LPH66: 取法, 然後當這一群匹配成力後就鎖住了不會去試別的 11/15 19:04
→ LPH66: 成功 11/15 19:04
謝謝LPH66大大
雖然自己還是一知半解,
但還是謝謝各位大大的指導.
※ 編輯: kikilalagirl (223.139.101.1 臺灣), 11/15/2021 19:44:12