作者lg31cm (我住5F)
看板RegExp
標題[問題] 有人熟atomic gropu嗎?(比對ZIP code)
時間Wed Jan 21 15:47:52 2009
這其實是 Mastering Regular Expressions 裡面的範例:
03824531449411615213441829503544272752010217443235
只能match 44開頭的五位數字(ZIP code),答案是:
44182
44272
書上的解法:
\G(?:(?!44)\d\d\d\d\d)*(44\d\d\d)
我嘗試改用atomic group卻無法成功(會多出44323):
(?>(?:(?!44)\d\d\d\d\d)*)(44\d\d\d)
哪位先進可以解釋一下?謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 204.13.236.244
→ lg31cm:我知道原因了,(?>無法抑制regex往下一個一個try 01/24 23:14
→ lg31cm:\G規定要從上次成功的結尾開始比對,假如失敗一次regex就會 01/24 23:15
→ lg31cm:放棄嘗試 01/24 23:15