正则表达式之<八>前后查找

正则表达式的先行断言和后行断言一共有4种形式:
1. (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion)
2. (?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion)

3. (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion)
4. (?<!pattern) 零宽负向后行断言(zero-width negative lookbehind assertion)


?=向前查找,但不包含(就是匹配结果中不包含,这就是不消费,"不消费"就是"零宽")

?<=向后查找


?=结合?<=


?<!负向后查找

对比?<=



可以这么理解,(xx pattern)这个pattern就是给你指定一个位置。
说是在这个位置,之前,还是在这个位置之后,但是不包含该位置字符。
比如:
”a regular expression” re(?=gular)
首先你得先匹配到这个gular字符,然后住在这个字符之前为re 则是匹配的。
所以这个结果应该是:
”a regular expression”

假设”a regular expression” re(?!gular)
那就表示re的后面不能为gular字符,则是匹配的。
那么这结果应该为:
”a regular exp ression”

假设”a regular expression” e(?=gular).
后面多了一个.这个字符就会是?=gular的第一个字符g
所以结果为
”a regular expression”

再看看向后查找:
regex represents regular expression (?<!\w)re
这就表示前面不能是子母或者下划线,后面跟着re字符的为匹配结果。
所以结果为:
regex represents regular expression

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...