千家信息网

php正则表达式如何实现零宽断言

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关php正则表达式如何实现零宽断言,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概念零宽断言,大多地方这样定义它,用于查找在某些内容(但并
千家信息网最后更新 2026年11月02日php正则表达式如何实现零宽断言

这篇文章将为大家详细讲解有关php正则表达式如何实现零宽断言,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

概念

零宽断言,大多地方这样定义它,用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< > 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。我的理解是在一个限定位置的字符串之前或之后进行匹配查找。所以零宽断言,执行过程分两种情况,如果是正向断言,应该是这样的,第一步,判断判断断言是否为真(即是否满足一定条件)第二步,如果满足条件,则进行下一步查找匹配。如果是反向断言,第一步还是按照正则表达式顺序去匹配。第二步,遇到反向代言,判断是否满足反之代言。

正先行断言

什么是正先行断言,就是在字符串相应位置之前进行查找匹配,使用 (?=exp) 匹配exp前面的位置。

实例

$str="abcgwcab";$parent='/bc(?=gw)/';$str=preg_match($parent,$str,$match);var_dump($match);/**输出结果:int 1array (size=1)   0 => string 'bc' (length=2)  */

解析:首先查找字符串"abcgwcab"中gw位置,断言为真,然后在匹配bc。如果将正则表达式写成$parent='/bc(?=gw)ca/'; 将会匹配不成功。

反先行断言

什么是反先行断言,使用 (?!exp) 匹配后面跟的不是exp。

实例:

$str="abcgwcab";$parent='/bc(?!ww)gw/';$str=preg_match($parent,$str,$match);var_dump($str);var_dump($match);/**输出:int 1array (size=1) 0 => string 'bcgw' (length=4)*/

解析:首先判断字符串是否包含bc,然后判断其后面不是ww,最后匹配gw。可以看出反向断言之前后之后,能够在添加其他匹配条件。

正后发断言

什么是正后发断言,就是在字符串相应位置之后进行查找匹配, (?<=exp) 匹配exp后面的位置

实例:

$str="abcgwcab";$parent='/(?<=gw)ca/';$str=preg_match($parent,$str,$match);var_dump($str);var_dump($match);/**输出结果:int 1array (size=1) 0 => string 'ca' (length=2)*/

解析:第一步,查找字符"abcgwcab"中是否包含有gw,返回结果为true,然后进行第二步,查找gw后面是否有ca。

反后发断言

什么是反后发断言,使用(?

$str="abcgwcab";$parent='/(?

解析:首先在字符串中匹配gw,然后判断其前面是不是bc,发现其前面是bc,故返回false。

练习题

例1:\d+(?=abc)
判断一个字符串中是否包含'abc',且其前面是否包含一个或多个数字

例2:(?<=\d\d)\w
判断字符串中是否存在连续两个数字,且其后面包含一个字母

例3:\d{3} (?!55)
判断字符串中是否包含连续三个数字,且三个数字后面不是55

例4:(?
判断一个字符串是否包含一个字母加数字的组合,且其前面不是ac

总结

先行断言与后发断言区别?

先行断言是判断断言之前的正则表达式,断言在其他正则表达式之后。后发断言是判断断言之前的正则表达式,断言在其他正则表达式之前。这里的先与后,是其他匹配相对应断言在正则表达式中的顺序。

关于"php正则表达式如何实现零宽断言"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

字符 字符串 正则 表达式 位置 数字 条件 内容 实例 篇文章 三个 字母 就是 更多 结果 顺序 输出 不错 实用 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 圆梦互联网科技 互联网科技会 互联网科技的发展 致骋互联网科技 天津摩尔互联网科技 互联网金融和金融科技 青岛中康互联网医疗科技有限公司 央行互联网金融科技公司 银川新华互联网科技职业技术培训学校图片 贵州叶脉互联网科技有限公司所属行业 互联网科技创新服务 互联网科技有哪些公司 国大互联网教育科技有限公司工作 国大互联网教育科技有限公司薪资 上海京穆互联网科技有限公司 互联网科技快讯热点 广东鹅鹅鹅互联网科技有限公司 萌小萌互联网科技河南有限公司 互联网科技平台产品运营 山东蛋芒互联网科技有限公司 喔噻互联网科技 上海喔噻互联网科技 美国互联网前沿科技 广州慧亚互联网科技怎么样 中国互联网十大科技股排名 乌苏新华互联网科技做什么的 中和天地互联网科技有限公司 深圳互联网科技的发展 云南省自由互联网科技有限公司 互联网界的黑科技
0