正则表达式,向前零宽断言(向前查找)
向前查找的意思是向后文查找(前面的路就是未知的路)
最简单的情形是如下情形:
搜索文本abcdefg中的abc:
abc(?=defg)
意思很明确:就是说要找到abc并且后面的那个位置应该是在defg之前。
其实用下面的方式也是可以匹配得到的:
(?=abcdefg)abc
这个表达式经过仔细研究后发现是以下的意思:
首先找到一个位置,这个位置是abcdefg这个模式之前,然后在这个位置上找到abc这个模式。
以下模式能够匹配得到么?
(?=.*cde)a
(?=.*cde)b
(?=.*cde)c
第三个是显而易见的,前两者也是可以匹配到的,因为.*起到了一个弹性的作用。
简而言之就是匹配一个位置,这个位置的后面就是括号内的子模式
向后的其实和向前的一样,找到一个位置后,以这个位置开始匹配