[問題] Atomic Group 的原理是什麼?

作者: kikilalagirl (kikilala)   2021-11-15 12:50:16
Atomic Group 的原理是什麼?
實在搞不懂, 想請教各位大大, 希望能指導一下. 謝謝.
下載 MSYS2 來練習 Regular Expression, 使用 grep.exe
https://www.msys2.org/
範例1:
https://i.imgur.com/BljXlDD.jpg
為什麼 big 與 biggest 互換, 匹配結果會不同?
範例2:
https://i.imgur.com/PwlOieo.jpg
為什麼 a(?>bc|b)c 會沒有匹配到 abc 呢?
經典範例: 不匹配 { } 裡面的數字
( 來源 http://hk.uwenku.com/question/p-vayxvzwu-bgp.html )
https://i.imgur.com/Lbmhwh4.jpg
為什麼加了 ?> (Atomic Group) 後, 就不會匹配到 7 了?
以上範例的指令放在 https://pastebin.com/e60Qt9eE
作者: microloft (微閣)   2021-11-15 14:45:00
https://i.imgur.com/fOnMZyq.png 這解釋蠻清楚的簡單說就是group內一旦有match,|後面的都會同時被捨棄不會再回頭嘗試其他選項了
作者: LPH66 (-6.2598534e+18f)   2021-11-15 18:59:00
+ 的 greedy 性表示第一波進去吃到 70 後退出, 這時 "70"被 atomic group 抓住了, 表示之後若失敗則不會退回其中然後 (?!}) 失敗了, 所以退後, 因上述理由不會再試只取 7的狀況, 因此就不會匹配到單 7 了 (被 atomic group 丟掉)跟 alternation 的相似性在於 atomic group 裡有不只一種取法, 然後當這一群匹配成力後就鎖住了不會去試別的成功

Links booklink

Contact Us: admin [ a t ] ucptt.com