正则表达式断言

    正则断言用来匹配某个表达式前面或者后面必需要有什么,或者必须没有什么,可是这些字符是不会被匹配出来(这就是零宽度),例如,字符串’abc 咱们要求abc字符前面必需要有一个’,可是匹配结果中是abc,不能包含这个号的,就叫正向零宽度断言,基于此有如下断言方式spa

一、  正向零宽度先行断言字符串

描述:紧挨着须要匹配的字符后面必须有表达式exp匹配的字符im

表达式:(?=exp)img

举例:co

说明:因为hello后面要求必需要有一个world,故第一行的hello能够匹配成功,而第二行的hello因为后面不是world则不会被匹配成功字符

二、  正向零宽度回顾后断言ab

描述:要求要紧挨着匹配字符的前面必需要有符合表达式exp的字符

表达式:(?<=exp)

举例:

说明:这个要求world单词的前面必需要有一个hello的单词,不然则算是匹配失败,在这里面匹配到了第一行的world,而第二行的world则会匹配失败

三、  负向零宽度先行断言

描述:紧挨着须要匹配结果的后面不容许出现符合exp表达式的内容

表达式:(?!exp)

举例:

说明:紧挨着hello后面不容许出现world单词,因此第一行未能匹配

四、  负向零宽度回顾后断言

描述:紧挨着在须要匹配的结果前不容许出现符合 exp表达式的内容

表达式:(?<!exp)

举例:

说明:因为第一行的world以前有hello,故第一行未能匹配获得,第二行得以匹配

相关文章
相关标签/搜索