文中所说的前后是有方向的,未免产生歧义,在此声明下
如A => B
我们说B在A的前面,A在B的后面

  • A(?=B)
    前瞻(Look ahead positive): 匹配的是A,限制条件是A前面是B。

想要匹配abc并且abc的前面是123的表达式,应该这样:

  • A(?!B)
    负前瞻(Look ahead negative): 顾名思义,该正则匹配A,限制条件是A前面不是B

想要匹配abc并且abc的前面不是123的表达式,应该这样:

  • (?<=B)A
    后顾(Look behind positive ): 匹配表达式A,限制条件A的后面是B

想要匹配abc并且abc的后面是123的表达式, 尴尬的是js不支持后顾,只支持前瞻,所以用js匹配会这样:

所以我换了sublime编辑器,因为sublime是用python写的,所以会得到这样的结果:

  • (?<!B)A
    负后顾(Look behind negative ): 匹配表达式A,限制条件是A的后面不是B

想要匹配abc并且abc的后面不是123的表达式,应该这样:

当然,在js中也是不支持负后顾的,不过似乎有提案让js支持后顾,相信过几年js就可以支持后顾了。

前面文章讲解了一些正则表达式的文章,今天讲讲?=,?:和?!这几个符号的作用吧~

这几个符号用的不多,主要解释如下:

前瞻:

haorooms(?=hrms) 查找hrms前面的haorooms,表示我们需要匹配hrms的前面

后顾:

(?<=hrms)haorooms 查找hrms后面的haorooms

负前瞻:

haorooms(?!hrms) 查找后面不是hrms的haorooms,

负后顾:

(?<!=hrms)haorooms 查找前面不是hrms的haorooms

转载于:https://www.cnblogs.com/yikemogutou/p/11245670.html

正则表达式之前瞻后顾相关推荐

  1. 没有人会觉得正则表达式难写

    1. RegExp对象 JavaScript有两种方式实例化RegExp对象 字面量 构造函数 字面量 const reg = /all/; console.log(reg); // /all/ 'T ...

  2. java正则表达式 后顾,正则表达式:从Copy到手写

    1. RegExp对象 JavaScript有两种方式实例化RegExp对象 字面量 构造函数 字面量 const reg = /all/; console.log(reg); // /all/ 'T ...

  3. 正则表达式——环视(Lookaround)(几分钟学会环视)

    正则运行测试网址:https://regex101.com/ 最开始学环视,是通过看<正则表达式必知必会>这本小册子,学完后感觉很模糊,好像会了,又好像不清楚,直到在网上看到下面这张图,才 ...

  4. 正则表达式匹配最后一部分

    今天,同事问了我一个正则,最后解决了,给大家提供一下参考.用于取网址的最后一部分.本文用于讲解(?= 和 ?<= 和 ?>=和 ?! 的用法) 数据如下: https://download ...

  5. 正则表达式前瞻(?=)、后顾(?)、负前缀(?!)、负后顾(?!)

    正则表达式前瞻(?=).后顾(?<).负前缀(?!).负后顾(?<!) 正则表达式前瞻.后顾这几个概念好像比较少会碰到,但是对于解决一些特定的匹配问题有非常重要的作用. 这几个概念的英文是 ...

  6. 通过正则表达式校验手机号码,拿走即用!

    校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...

  7. Linux shell 学习笔记(15)— shell 正则表达式

    1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...

  8. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册

    前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...

  9. 正则表达式(括号)、[中括号]、{大括号}的区别小结

    正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...

  10. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

最新文章

  1. java虚拟机内存分为,深入理解Java虚拟机笔记(一)----内存划分
  2. 项目: 图片放大缩小。
  3. boost::log::attributes::make_function用法的测试程序
  4. 详细分析图像形态学操作
  5. java环境_配置java环境变量
  6. mysql 时间段内的周末_淘宝用户行为数据分析(MySQL)
  7. xss挖掘思路分享_WEB安全(二) :XSS的漏洞挖掘(上)
  8. 360胡宁:通往CTO的道路上就是四个字
  9. MyCAT与MySQL导入、导出文件
  10. 百度换肤怎么实现的html,JavaScript 实现百度换肤功能
  11. JAVA泛型-泛型方法的定义和使用
  12. 互联网赚钱骚操作,真的太骚了
  13. oracle的month函数的使用方法,oracle next_day,add_month函数
  14. es6 混合commjs_ES6 模块化的时代真的来临了么?Using MJS
  15. 2021年最牛福利!阿里巴巴社招面试真题惨遭外泄,现在全部分享给大家!
  16. 数据库系统概论(王珊,萨师煊版)范式之前要点一览(简略)
  17. redhat7安装oracle11gR2之环境准备
  18. win11安装后黑屏怎么解决
  19. 计算机视觉—基于BOW的图像检索
  20. Android Binder机制情景源码分析之Binder回调注册和反注册

热门文章

  1. 【C++】针对char 字符类型cout的三种输出情况(++ch 和 ch+1 和 ch++)难点加重点
  2. Java使用IP代理突破IP限制进行投票
  3. Node art-template 和 prase-pody配置
  4. 滴滴分析专家8000字干货:数据如何驱动业务增长 ?
  5. 不是所有成功都值得尊重
  6. 香农公式说明了什么_香农定理到底有什么含义?能通俗地解释一下么?
  7. 微信公众号发送模板通知
  8. 拼多多如何引流推广产品?拼多多新产品如何推广?
  9. Xilinx zynqmp VCU使用
  10. 惠普电脑没有insert键怎么办?(按回车不换行,光标到下一行文字处)