环视结构不匹配任何字符,只匹配文本中的特定位置。这一特点与锚点^和$很相似。但是环视功能更强大。

顺序环视(?=……)

逆序环视(?<=……)

顺序环视主要用于匹配位置,可以理解为:右面是”……”的字符位置。

Jeff(?=Jeffrey) //只会匹配后面紧邻Jeffrey的Jeff,也就是只会匹配Jeffrey里面的Jeff

                //换个角度理解,(?=Jeffrey)先匹配到右面是Jeffrey的位置,然后从此位置开始匹配Jeff。


匹配原理如下:

正则表达式(三)——环视_.net

(?<=\b Jeff)(?=s\b)的匹配结果(注意:环视的匹配结果都是位置):

正则表达式(三)——环视_逆序_02 


以上总结的是肯定顺序环视以及肯定逆序环视,其实还有否定顺序环视以及否定逆序环视。