正则表达式之前瞻后顾
文中所说的前后是有方向的,未免产生歧义,在此声明下
如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. RegExp对象 JavaScript有两种方式实例化RegExp对象 字面量 构造函数 字面量 const reg = /all/; console.log(reg); // /all/ 'T ...
- java正则表达式 后顾,正则表达式:从Copy到手写
1. RegExp对象 JavaScript有两种方式实例化RegExp对象 字面量 构造函数 字面量 const reg = /all/; console.log(reg); // /all/ 'T ...
- 正则表达式——环视(Lookaround)(几分钟学会环视)
正则运行测试网址:https://regex101.com/ 最开始学环视,是通过看<正则表达式必知必会>这本小册子,学完后感觉很模糊,好像会了,又好像不清楚,直到在网上看到下面这张图,才 ...
- 正则表达式匹配最后一部分
今天,同事问了我一个正则,最后解决了,给大家提供一下参考.用于取网址的最后一部分.本文用于讲解(?= 和 ?<= 和 ?>=和 ?! 的用法) 数据如下: https://download ...
- 正则表达式前瞻(?=)、后顾(?)、负前缀(?!)、负后顾(?!)
正则表达式前瞻(?=).后顾(?<).负前缀(?!).负后顾(?<!) 正则表达式前瞻.后顾这几个概念好像比较少会碰到,但是对于解决一些特定的匹配问题有非常重要的作用. 这几个概念的英文是 ...
- 通过正则表达式校验手机号码,拿走即用!
校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...
- Linux shell 学习笔记(15)— shell 正则表达式
1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...
- re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...
- 正则表达式(括号)、[中括号]、{大括号}的区别小结
正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...
- Python中正则表达式用法 重点格式以这个为准_首看_各种问题
20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...
最新文章
- java虚拟机内存分为,深入理解Java虚拟机笔记(一)----内存划分
- 项目: 图片放大缩小。
- boost::log::attributes::make_function用法的测试程序
- 详细分析图像形态学操作
- java环境_配置java环境变量
- mysql 时间段内的周末_淘宝用户行为数据分析(MySQL)
- xss挖掘思路分享_WEB安全(二) :XSS的漏洞挖掘(上)
- 360胡宁:通往CTO的道路上就是四个字
- MyCAT与MySQL导入、导出文件
- 百度换肤怎么实现的html,JavaScript 实现百度换肤功能
- JAVA泛型-泛型方法的定义和使用
- 互联网赚钱骚操作,真的太骚了
- oracle的month函数的使用方法,oracle next_day,add_month函数
- es6 混合commjs_ES6 模块化的时代真的来临了么?Using MJS
- 2021年最牛福利!阿里巴巴社招面试真题惨遭外泄,现在全部分享给大家!
- 数据库系统概论(王珊,萨师煊版)范式之前要点一览(简略)
- redhat7安装oracle11gR2之环境准备
- win11安装后黑屏怎么解决
- 计算机视觉—基于BOW的图像检索
- Android Binder机制情景源码分析之Binder回调注册和反注册
热门文章
- 【C++】针对char 字符类型cout的三种输出情况(++ch 和 ch+1 和 ch++)难点加重点
- Java使用IP代理突破IP限制进行投票
- Node art-template 和 prase-pody配置
- 滴滴分析专家8000字干货:数据如何驱动业务增长 ?
- 不是所有成功都值得尊重
- 香农公式说明了什么_香农定理到底有什么含义?能通俗地解释一下么?
- 微信公众号发送模板通知
- 拼多多如何引流推广产品?拼多多新产品如何推广?
- Xilinx zynqmp VCU使用
- 惠普电脑没有insert键怎么办?(按回车不换行,光标到下一行文字处)