PHP正则表达式中,如何运用正向预查和反向预查进行匹配?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1127个文字,预计阅读时间需要5分钟。
了解正则预查和预置,首先要知道正则表达式中的两个函数:preg_match_all 和 preg_replace。正则预查和预置都是非获取性匹配,不进行存储,直接使用。
1. 正向预查(Positive Lookahead): (?=(pattern)) 例如:`(?=(\d{3}-\d{2}-\d{4}))` 匹配任何包含XXX-XX-XXXX格式的字符串,但不包括XXX-XX-XXXX本身。
2. 反向预查(Negative Lookahead): (?!pattern) 例如:`(?!(\d{3}-\d{2}-\d{4}))` 匹配任何不包含XXX-XX-XXXX格式的字符串。
了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all 、 preg_replace
正向预查&反向预查
正向或反向预查都是非获取匹配,不进行存储供以后使用。
1、正向预查
(?:pattern) 匹配结果
(?=pattern) 正向匹配
(?!pattern) 正向不匹配
2、反向预查
(?<=pattern) 反向匹配。
(?<!pattern) 反向不匹配。
本文共计1127个文字,预计阅读时间需要5分钟。
了解正则预查和预置,首先要知道正则表达式中的两个函数:preg_match_all 和 preg_replace。正则预查和预置都是非获取性匹配,不进行存储,直接使用。
1. 正向预查(Positive Lookahead): (?=(pattern)) 例如:`(?=(\d{3}-\d{2}-\d{4}))` 匹配任何包含XXX-XX-XXXX格式的字符串,但不包括XXX-XX-XXXX本身。
2. 反向预查(Negative Lookahead): (?!pattern) 例如:`(?!(\d{3}-\d{2}-\d{4}))` 匹配任何不包含XXX-XX-XXXX格式的字符串。
了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all 、 preg_replace
正向预查&反向预查
正向或反向预查都是非获取匹配,不进行存储供以后使用。
1、正向预查
(?:pattern) 匹配结果
(?=pattern) 正向匹配
(?!pattern) 正向不匹配
2、反向预查
(?<=pattern) 反向匹配。
(?<!pattern) 反向不匹配。

