正则表达式——环视
前面介绍过单词边界匹配的是这样的位置: 一边是单词字符,另一边不是单词字符。 从另一个角度来看,它能进行这样的判断:在某个位置向左/向右看,必须出现或不能出现某类字符。 有时候,这种功能非常有用。
环视结构并不会真正的匹配文本
名字 | 记法 | 判断方向 | 结构内表达式匹配成功返回值 |
---|---|---|---|
肯定顺序环视 | (?=...) | 向右 | True |
否定顺序环视 | (?!...) | 向右 | False |
肯定顺序环视 | (?<=...) | 向左 | True |
肯定顺序环视 | (?<!...) | 向左 | False |
肯定环视和否定环视的一大根本不同:肯定环视要判断成功,字符串中必须有字符由环视结构中的表达式匹配;而否定环视要判断成功,却有两种情况:字符串中出现了字符,但这些字符不能由环视结构中的表达式匹配;或者字符串中不再有任何字符,也就是说,着个位置是字符串的起始位置或者结束位置。