作者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
1F:→ lg31cm:我知道原因了,(?>无法抑制regex往下一个一个try 01/24 23:14
2F:→ lg31cm:\G规定要从上次成功的结尾开始比对,假如失败一次regex就会 01/24 23:15
3F:→ lg31cm:放弃尝试 01/24 23:15