正则表达式之<八>前后查找
发布时间:2020-12-14 02:21:11 所属栏目:百科 来源:网络整理
导读:正则表达式的先行断言和后行断言一共有4种形式: 1. (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion) 2. (?=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion) 3. (?!pattern) 零宽负向先行断言(zero-width nega
正则表达式的先行断言和后行断言一共有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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |