毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> WEB开发 >> 正文

正向预查中预查不消耗字符是什么意思

更新时间:2012-10-6:  来源:毕业论文

微软的<<Windows脚本技术>>手册里的《正则表达式语法》对“(?=pattern)”的解释是这样一段话:


引用
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。


请问最后一句话到底是什么意思啊?能举例说明么?

话说我第一次看这个的时候也不明白是什么意思...这手册的介绍太模糊了^^

不耗费字符...
就是不站用字符...
举例说明...

字符串
str = 'abc';

/a(?=b)bc/.test(str); //true 因为(?=b)只确定了b前面那个位置...就是说它匹配位置...为不是字符...

/a(b)bc/.test(str); //false 因为(b)匹配了字符,而不是后面为b的那个位置....(b)换成(?:b),也是同样的效果...

继续下潜....

(?=pattern) 说明右面紧挨着pattern 如
var str = "abcad";
var reg = /a(?=b)/g; //这样将会查找字符a,取到后面紧临b的字符a,这样第一个a匹配,
//之所以说不消耗字符是指 当开始匹配字符串的时候 当第一个字符a匹配的时候查验第二个字符是否为b,不管第二个字符是否为b,那么第二次匹配的时候从第二个字符匹配
var str = "abababababababa";
var reg = /aba/g; //这样首先得三个字符匹配成功,再次匹配的时候就要从第四个字符b开始

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©chuibin.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。