马黑PHP整站系统

      1
2345678
9101112131415
16171819202122
23242526272829
3031     

[复位日记]

最新评论

悄然
飞飞
马黑
悄然
飞飞

网站统计

·今日访问 : 39
·页面点击 : 40
·当前在线 : 3

2025年3月16日 星期日[阅读 39]

正则断言:

一、前瞻断言

a(?=b) :匹配 a,如果 a 后面是 b

a(?!b) :匹配 a,如果 a 后面不是 b

二、后瞻断言

(?<=b)a :匹配 a,如果 a 前面是 b

(?<!b)a :匹配 a,如果 a 前面不是 b


语法要点:用小括号 () 将断言包裹起来,问号 ? 是断言引导词,也是表示是否的意思,等号 表示等于,感叹号 ! 表示不等于,后瞻断言在问号 ? 之后加一个向左的尖括号 < 表示断言方向即放在前面匹配关键词的前面。

例如,要匹配“花",但只匹配“花”的后面用“红”字的“花”,用前瞻断言:

    字符串 :花开、花红
    正则 1 :花(?=红) → 匹配花红,不匹配花开
    正则 2 :花(?!红) → 匹配花开,不匹配花红

再例如,要匹配“花”,但只匹配“花”的前面有“红”字的“花”,意思后瞻断言:

    字符串 :开花、红花
    正则 1 :(?<=红)花 → 匹配红花,不匹配开花
    正则 2:(?<!红)花 → 匹配花开,不匹配红花

2025': 前一则  下一则    

评论列表: [ 1 条 ]

1 # 悄然[2025-3-18 21:29]   可以用文字表达。。这个好看

发表评论:

       

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com