正则表达式在匹配文本时,一般都是按照从左到右的顺序进行的,并且会消耗匹配的字符,环视(look around)能够实现在特定位置向左或向右查看(匹配)。环视结构不占用(消耗)任何字符,只匹配文本中的特定位置,这一点与单词分界符”\b”,锚点”^”和”$”相似,但是环视更加通用。
环视常见的用途是匹配前缀,匹配后缀和寻找重复的单词。
一,环视结构
环视是正则表达式中的特殊结构,环视的正则表达式格式是以 "(?" 开头,以")"结尾,如下所示:
- (?=exp) :肯定顺序环视,向右
- (?!exp) :否定顺序环视,向右
- (?<=exp):肯定逆序环视,向左
- (?<!exp):否定逆序环视,向左
注释:!表示否定,=表示肯定,<表示向左,exp表示环视的正则。
环视查找中的前(左)、后(右)是指位置和与被查找文本的相对位置而言,如果被查找文本在位置之后,称作向右;如果被查找文本在位置之前,称作向左。
1,顺序环视
顺序环视是从左到右查看文本,尝试匹配正则。如果能够匹配,就返回匹配成功信息。顺序环视又分肯定型和否定型,对于肯定性顺序环视(positive look ahead)用特殊的序列”(?=