
探究正则表达式中的正向和反向预查
如何在 php 中运用正则表达式匹配符合特定条件的字符串呢?让我们借助一个示例来研究正向和反向预查的应用。
示例字符串:java123pagejava456java789
需求:匹配后面不是 “page” 的 “java” 数字组合,并捕获数字部分。
正向预查
正向预查语法:(?=子表达式)
立即学习“PHP免费学习笔记(深入)”;
它指定条件必须出现在匹配位置的后面。在本例中,我们使用正向预查来确保匹配的 “java” 后面不是 “page”:
java(d++)(?!page)
该正则表达式匹配 “java” 后跟任意数量数字,且后面不是 “page”。
反向预查
反向预查语法:(?
它指定条件必须出现在匹配位置的前面。在本例中,我们使用反向预查来确保匹配的数字前面是 “java”:
(?<=java)d++(?!page)
该正则表达式匹配 “java” 后跟任意数量数字,且后面不是 “page”。
优化反向预查
为了防止匹配重复的数字,我们还可以添加一个负向预查来匹配后面不是数字的数字:
(?<=java)d+(?!d)(?!page)
这些正则表达式都可以满足给定的需求,匹配 “java” 后跟任意数量数字,且后面不是 “page”。
以上就是PHP正则表达式:如何用正向和反向预查匹配特定条件的字符串?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1251143.html
微信扫一扫
支付宝扫一扫