[已解决]正则表达式的请教?
本帖最后由 newuser 于 2010-12-15 08:15 编辑(?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
例有个字符串:
"this Windows95 andWindows2000,Windows3.1 not WindowsNT
this Windows95 andWindows2000,Windows3.1 not WindowsNT"
那么,在第一个出现的Windows95 匹配之后,最后一次匹配如何确定?是第一个出现的Windows2000还是第一个出现的WindowsNT?
我想应该是第一个出现的Windows2000,不知是否理解正确?
在最后一次匹配之后立即开始下一次匹配的搜索:是不是该从"第一行的WindowsNT"继续匹配? 你是想匹配啥呀?没明白。。。 回复 2# lsqyx528
我不明白上面代码段中的话,所以以我的理解举个例子来问有关的问题. 回复 1# newuser
顶一下,别沉了! 不懂 没清楚 回复 5# yarsye (?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
就是我不明白代码中的这段话,能举个例子让我明白它吗 ? “最后一次匹配”其实就是上一次成功匹配的末尾~
字符串:
"this Windows95 andWindows2000,Windows3.1 not WindowsNT
this Windows95 andWindows2000,Windows3.1 not WindowsNT"
表达式:
Windows(?=95|98|NT|2000)
第一次成功匹配的是“Windows95”中的“Windows”,相对下一次匹配,此次成功匹配的位置就是“最后一次匹配”的意思 回复 7# afan
啊!我还以为95/NT/2000/98都匹配后再接着下一次匹配呢!
谢谢.
页:
[1]