正则表达式,向前零宽断言(向前查找)

向前查找的意思是向后文查找(前面的路就是未知的路)

最简单的情形是如下情形:

搜索文本abcdefg中的abc:

abc(?=defg)

意思很明确:就是说要找到abc并且后面的那个位置应该是在defg之前。

其实用下面的方式也是可以匹配得到的:

(?=abcdefg)abc

这个表达式经过仔细研究后发现是以下的意思:

首先找到一个位置,这个位置是abcdefg这个模式之前,然后在这个位置上找到abc这个模式。

以下模式能够匹配得到么?

(?=.*cde)a

(?=.*cde)b

(?=.*cde)c

第三个是显而易见的,前两者也是可以匹配到的,因为.*起到了一个弹性的作用。

 

简而言之就是匹配一个位置,这个位置的后面就是括号内的子模式

向后的其实和向前的一样,找到一个位置后,以这个位置开始匹配

posted on 2011-05-26 22:34  Observer  阅读(2636)  评论(0编辑  收藏  举报

导航