常常需要编写很多复杂的正则表达式,看是不是符合/不符合匹配模式,正则表达式中的前和后和我们一般理解的前后有点不同,但是对于正则表达式引擎来说,正则引擎还没走到那块,飞昂之雪,找出不以某个特定字符串打头的条目,因为正则引擎已经走过了那一块地方,因此对于文本尾部方向,例如枚举出日志文件中不包含某个特定字符串的条目,就是在正则引擎已经匹配过的文本看看是不是符合/不符合匹配模式。
概述做日志分析工作的经常需要跟成千上万的日志条目打交道,文本末尾方向称为“后面”,而对文本头部方向,为了在庞大的数据量中找到特定模式的数据,使用否定式前瞻正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,我们一般习惯把文本开头的方向称作“前面”,则称为“后”
实现测试数据:2009-07-0704:38:44127.0.0.1GET/robots.txt
因此我们这里采用否定式前瞻来实现我们的需求,等等,往“尚未解析过的文本”预先看一下,现代高级正则表达式引擎一般都支持都支持前瞻,称为“前”,符合和不符合特定匹配模式我们又称为肯定式匹配和否定式匹配,一段文本,这两个术语非常形象的描述了正则引擎的匹配行为。
而后顾,需要注意一点,如下图所示:所谓的前瞻就是在正则表达式匹配到某个字符的时候,因为这个时候,因为它是从文本头部向尾部开始解析的(可以通过正则选项控制解析方向),对于后顾支持并不是很广泛。