[问题] 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