作者:极客小俊 一个专注于web技术的80后

我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人!

极客小俊@知乎,官方首发原创文章

博客: 极客小俊GeekerJun

PHP正则中的断言匹配

我遇见过很多初学者都不知道什么叫 断言匹配 ,今天就跟小白解释一下 概述 断言匹配也叫定位边界匹配、 含义就是要取从某一个字符串的位置开始 或 结尾开始截取 语法: ?<=n : 表示匹配当前从n字符串之后 或者 之前的字符串 小提示: 这里主要是要搞清楚会不会包含n字符串, 如果还不理解那么我们就看下面的案例吧

例1: 匹配n字符串之后的所有字符: 这里就叫 匹配之后 注意:[这里不会包含当前n的字符] 案例代码如下:

 //断言匹配 案例1  匹配n字符串之后的所有字符串, 但这里不会包含n这个字符$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝阳区';$pattern='/(?<=baidu).*/';preg_match($pattern,$string,$arr);show($arr);

例2: 匹配n字符串之前的所有字符, 这里就叫: 之前匹配 注意:[这里会包含当前n字符] 案例代码如下:

 //断言匹配 案例2  匹配n字符串之前的所有字符串, 但这里会包含n这个字符$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝阳区';$pattern='/.*(?<=baidu)/';preg_match($pattern,$string,$arr);show($arr);

我想大家看了案例以后应该清楚什么叫之前 之后 的匹配了吧!! 如果不清楚就把代码粘贴,运行起来,跑一下,打印出结果就会知道含义了!

在w3school api文档的JS分类里RegExp篇章中量词里面 大家会找到一个叫: ?=n 的东西 , 这个也是断言匹配的一种形式, ?=n 表示匹配包含当前从n字符串之后 或者 之前的字符串

例3: 之后的匹配 注意:[这里会包含当前n的字符, 这里跟例1恰好相反 ] 其实 仔细观察的同学一定会发现 核心区别就是少一个小于符号 : < 就会造成不同的效果

  //断言匹配 案例3  匹配n字符串之后的所有字符串, 这里会包含n这个字符$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝阳区';$pattern='/(?=baidu).*/';preg_match($pattern,$string,$arr);show($arr);

例4: 之前的匹配 注意:[这里不会包含当前n的字符 , 这里也恰好跟例2 相反 ] 就不多说了直接看代码吧!

 //断言匹配 案例4  匹配n字符串之前的所有字符串, 这里不包含n这个字符$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝阳区';$pattern='/.*(?=baidu)/is';preg_match($pattern,$string,$arr);show($arr);

现在明白我一开始就说: 要是要搞清楚会不会包含n字符串 的原因了吧!!

那么现在搞清楚了什么是断言匹配之后, 我们继续来看几个综合小例子吧 断言匹配综合小应用 例1 : 抽取字符串的其中某一段字符! 代码如下:

 $string='33333333666www.baidu.com.cn 北京市朝阳区';$pattern='/(?<=666).*(?=.cn)/is';preg_match($pattern,$string,$arr);show($arr);

断言匹配综合小应用 例2: 抽取@中间的字符 代码如下:

 $string='@php@python.com@perl.com@';$pattern='/(?<=@).*?(?=@)/is';preg_match_all($pattern,$string,$arr);show($arr);

断言匹配综合小应用 例3: 抽取@中间的字符 升级版 代码如下:

 $string='@php@python.com@perl.com@asdasdas#java#spring boot#';$pattern='/(?<=[@#]).*?(?=[@#])/is';preg_match_all($pattern,$string,$arr);show($arr);

以上的案例差不多 就是我在工作当中 遇见过的. 断言匹配 暂时就说到这里,以后会继续更新!!

如果对你有帮助、如果你喜欢我的内容,请 “点赞” “评论” “收藏” 一键三连哦!

如果以上内容有任何错误或者不准确的地方,欢迎在下面 留个言指出、或者你有更好的想法,欢迎一起交流学习

前端html+css+javascript技术讨论交流群: 281499395

后端php+mysql+Linux技术交流群: 855256321

php正则匹配js中变量_PHP正则表达式核心技术完全详解 第12节 [附加知识] 断言匹配...相关推荐

  1. php preg_match 只匹配第一个字符_PHP正则表达式核心技术完全详解 第12节知识补充 断言匹配

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! PHP正则中的断言匹配 我遇见过很多初学者都不知道什么叫 断言匹配 ,今天就跟小白解释一 ...

  2. php preg_match 只匹配第一个字符_PHP正则表达式核心技术完全详解 第3节

    PHP 正则表达式核心技术详解 第3节 我们在第2节中学习了有关正则的原子.元字符.原子表.转义字符等重要知识点, 这一节我们来讲一下正则中的量词.断言匹配.逻辑匹配.等重要知识! 1 量词 量词: ...

  3. php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! php中兼容Perl的正则表达式处理函数 在我们说php系统自带的正则处理函数之前,我们 ...

  4. dreamweaver 正则表达式为属性值加上双引号_PHP正则表达式核心技术完全详解 第2节...

    PHP 正则表达式核心技术完全详解 第2节 接上一节内容 1 普通字符作为原子 /5/ 用于匹配字符串中是否有5这个字符出现 /php/ 用于匹配字符串中是否有PHP字符串出现 /  / 匹配空字符串 ...

  5. php 两个单词 正则表达式字符前_PHP正则表达式核心技术完全详解 第3节

    PHP 正则表达式核心技术详解 第3节 我们在第2节中学习了有关正则的原子.元字符.原子表.转义字符等重要知识点, 这一节我们来讲一下正则中的量词.断言匹配.逻辑匹配.等重要知识! 1 量词 量词: ...

  6. php 正则表达式提取出合法的时间_PHP正则表达式核心技术完全详解 第1节

    PHP 正则表达式核心技术 第1节 正则表达式: 就是描述字符串排列模式的一种自定义语法规则.也是用于描述字符串排列 或 匹配模式的一种语法规则. 正则表达式: 就是用于描述字符串排列 或 匹配模式的 ...

  7. js中childNodes易错点、详解定义以及用法

    js中childNodes易错点.详解定义以及用法 最近学习的时候,我遇到了childNodes的一些问题,我查阅了一些资料,总结一下其定义及用法.在学习childNodes之前,我们需要先了解一下D ...

  8. php正则匹配js中变量_Postgresql 中的 正则表达式 模式匹配

    参考链接: PostgreSQL 模式匹配​www.yiibai.com 1. like string LIKE pattern [ESCAPE escape-character] string NO ...

  9. python输出变量代码_Python中变量的输入输出实例代码详解

    1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...

最新文章

  1. 联想服务器DL388eu盘装系统,服务器价格指导 10月双路机架产品导购
  2. python字典嵌套列表怎么访问值的某个元素_通过键列表访问嵌套字典项?
  3. DM368开发 -- 制作ubifs文件系统
  4. [JavaWeb-HTML]HTML标签_列表标签
  5. 招聘APP如何搭建信用体系以避免求职者被骗
  6. PHP: stdclass, 数组转成对象
  7. 测试图像 “monarch”_智慧职教云课堂2020学前儿童心理教育章节测试答案
  8. shell日志重定向到null
  9. 说说自己写PHP框架的一些感受
  10. 解读mysql的索引和事务的正确姿势 1
  11. hibernate教程笔记9
  12. ModelAndView使用
  13. 30分钟快速了解云计算
  14. 解决CCS闪退问题(亲测有效)
  15. C# F23.StringSimilarity库 字符串重复度、文本相似度、防抄袭
  16. 经验分享——本科非技术女
  17. 使用jQuery实现时钟的效果
  18. 如何查看suse系统服务器sn,suse 配置 - sncder的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. 情绪是人生最大的敌人
  20. 2023年什么行业和岗位更有发展前景?

热门文章

  1. 搜狗输入法电脑版_四款“真·无广告”的良心靠谱输入法推荐 2020
  2. 菜鸟教程html图片自动播放,HTML img 标签 | 菜鸟教程
  3. python中表示空类型的是_python中什么表示空类型
  4. linux下java转储线程_Java线程转储prio值与linux上的真实线程优先级不对应?
  5. 我们大家都知道mysql_10个mysql中select语句的简单用法
  6. 装饰者模式-继承模式和接口模式
  7. 1.无重复字符的最长子串
  8. 牛客网——华为机试(题8:合并表记录)(Java)
  9. Oracel官网下载各类版本的JDK
  10. Struts2中的值栈