p7749 发表于 2012-12-26 22:51:00

正则表达式--零宽度正回顾后发断言 已解决

本帖最后由 p7749 于 2013-1-2 12:50 编辑

正在学习《正则表达式30分钟入门》,在下面的地方搞不明白了。(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。比如(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。

假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了),你可以这样查找需要在前面和里面添加逗号的部分:((?<=\d)\d{3})+\b,用它对1234567890进行查找时结果是234567890。

我在AU3里得不到文章提到的结果我只得到结果890
$file="1234567890 345"
$a=StringRegExp($file,"((?<=\d)\d{3})+\b",3)
MsgBox(0,"",$a)
请老师给指点一下。

annybaby 发表于 2012-12-26 23:45:42

回复 1# p7749

里面说的是整个表达式的完整匹配,把你表达式中的模式3改成2就看到了
页: [1]
查看完整版本: 正则表达式--零宽度正回顾后发断言 已解决