找回密码
 加入
搜索
查看: 3199|回复: 7

[AU3基础] [已解决]正则表达式的请教?

  [复制链接]
发表于 2010-12-14 09:08:43 | 显示全部楼层 |阅读模式
本帖最后由 newuser 于 2010-12-15 08:15 编辑
(?=pattern)        正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
例有个字符串:
"this Windows95 and  Windows2000,Windows3.1 not WindowsNT
this Windows95 and  Windows2000,Windows3.1 not WindowsNT"
那么,在第一个出现的Windows95 匹配之后,最后一次匹配如何确定?是第一个出现的Windows2000还是第一个出现的WindowsNT?
我想应该是第一个出现的Windows2000,不知是否理解正确?
在最后一次匹配之后立即开始下一次匹配的搜索:是不是该从"第一行的WindowsNT"继续匹配?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-12-14 10:09:43 | 显示全部楼层
你是想匹配啥呀?没明白。。。
 楼主| 发表于 2010-12-14 11:09:25 | 显示全部楼层
回复 2# lsqyx528
我不明白上面代码段中的话,所以以我的理解举个例子来问有关的问题.
 楼主| 发表于 2010-12-14 15:08:27 | 显示全部楼层
回复 1# newuser
顶一下,别沉了!
发表于 2010-12-14 16:03:57 | 显示全部楼层
不懂 没清楚
 楼主| 发表于 2010-12-14 17:09:32 | 显示全部楼层
回复 5# yarsye
(?=pattern)        正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
就是我不明白代码中的这段话,能举个例子让我明白它吗 ?
发表于 2010-12-14 18:20:25 | 显示全部楼层
“最后一次匹配”其实就是上一次成功匹配的末尾~
字符串:
"this Windows95 and  Windows2000,Windows3.1 not WindowsNT
this Windows95 and  Windows2000,Windows3.1 not WindowsNT"
表达式:
Windows(?=95|98|NT|2000)
第一次成功匹配的是“Windows95”中的“Windows”,相对下一次匹配,此次成功匹配的位置就是“最后一次匹配”的意思
 楼主| 发表于 2010-12-15 07:59:22 | 显示全部楼层
回复 7# afan
啊!我还以为95/NT/2000/98都匹配后再接着下一次匹配呢!
谢谢.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 15:08 , Processed in 0.117004 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表