正则表达式的先行断言及后行断言

一共分为四种

  • (?=a) 零宽正向先行断言
  • (?!a)零宽负向先行断言
  • (?<=a)零宽正向后行断言
  • (?<!a)零宽负向后行断言

专业术语听起来确实有点云里雾里,通俗的讲就是匹配某个位置,位置指某个字符的左边或右边,零宽指的是不替换字符左右的字符,而是插入该位置。

(?=a) 零宽正向先行断言

该正则匹配某字符前面的位置。

let reg = /(?=o)/g
let str = 'hello world'
let s = str.replace(reg,'A')
console.log(s)    //输出hellAo wAorld
复制代码

经过上面的代码可以看到,A匹配到了o前面的位置

let reg = /l(?=o)/g
let str = 'hello world'
let s = str.replace(reg,'A')
console.log(s)     //输出helAo world
复制代码

该正则匹配后面紧跟o的l字符,只有第二个l满足该条件,所以被替换</

(?=a)与(?!a)代表什么意思相关推荐

  1. 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?

    使用Maven打包后生成 XXXXXXX-1.0.0-SNAPSHOT.jar 和 XXXXXXX-1.0.0-RELEASE.jar 的区别???? 首先,根本原因:这是因为你的pom.xml中的项 ...

  2. 中国大陆集成电路芯片领域各个细分代表企业

    中国大陆集成电路芯片领域各个细分代表企业 我国集成电路市场保持快速发展,集成电路设计占比不断提升.我国集成电路市场从 2008 年的 1006 亿元,快速上涨至 2018 年的 6532 亿元, CA ...

  3. 周围剃光头顶留长发型_2021年发型预测:这5位中长发男神,谁才是你心中的长发代表...

    除了时下流行的偏分.寸头发型之外,近期也掀起了一股怀旧风潮,中长发发型再度窜红.我大胆预测了一下,没准这种发型会成为2021年最夯的发型之一! 长发不是女生的专利,很多男神留起长发,绝对是有过之而无不 ...

  4. Java业务代表模式

    业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦.它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能.在业务层中我们有以下实体. 客户端(Cli ...

  5. 什么是以太坊,它是区块链2.0的代表,它又什么特点?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 以太坊 是一种全球共享计算,是各种分散应用程序的基础.它有一个独立于比特币的独立区块链,但与之类似.以太坊的区块链有显着 ...

  6. 为什么以太坊能成为区块链2.0的代表之作?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链的学习进入到第四天,前三天学习比特币,分别从比特币的前世.货币属性和背后的区块链技术学习. 比特币是区块链的1.0 ...

  7. 景驰科技又生闹剧?法人代表潘思宁将CFO吕庆诉至法院

    自动驾驶创业公司景驰科技可谓是磨难重重,在原 CEO 王劲卷入侵犯百度商业秘密离职事件之后,又生闹剧.景驰科技法人代表潘思宁爆料称:景驰科技 CFO 吕庆等人质押其股权,并伪造自己的签名和股东会决议变 ...

  8. 最新!NLG顶会INLG2021最佳长论文出炉!一作华人学生代表出席今晚INLG

    作者 | 吴彤 编辑 | 青暮 周杰伦三词作曲,曹植七步成诗.近年来,约束文本生成任务(在特定前提条件下生成自然语言输出)引起越来越多人的兴趣. 最新消息,华人学者 Steven Y. Feng 与四 ...

  9. python函数参数*arg和**kwargs分别代表什么?

    python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...

  10. ping -c3 baidu.com  ping过去是这样,代表网络畅通

    ping -c3 baidu.com  ping过去是这样,代表网络畅通 ping 命令 对 cloud.tencent.com 发送 4 个 ping 包, 检查与其是否联通 ping -c 4 c ...

最新文章

  1. Android 替换TextView 里面指定的符号
  2. 使用java.util.Timer来周期性的执行制定的任务
  3. Ubuntu系统查看mongo得慢日志,及一些操作
  4. JSON 对象和字符串对象的互转
  5. knot in ship
  6. Windows系统顽固型文件清除方法
  7. 2018-05-17 第十一天
  8. 14行代码AC——1017 A除以B (20分)(大数运算+讲解)
  9. 注解@resource的作用_Bean基于Annotation(注解)的装配方式
  10. 机器学习预测+akshare
  11. html浏览器边框颜色,CSS设置字体和边框颜色时Chrome和其他主流浏览器差别的问题_html/css_WEB-ITnose...
  12. js 中exec、test、match、search、replace、split用法
  13. mtk android 源代码下载,MTK手机开发之路--MTK源代码下载
  14. 牛客网 2018校招真题 吉比特 直线上的点
  15. 【历史上的今天】5 月 4 日:微软放弃收购雅虎;史上最危险的电脑病毒;vi 发布
  16. HiveSQL percentile和percentile_approx 函数计算千分数
  17. AGV导航中的最短路径算法比较
  18. 影视小程序完美版源码
  19. 【Multisim仿真】74LS194组成的8个led流水灯
  20. Warning: Failed to parse host xx.xx.com

热门文章

  1. 中国SaaS企业排名,龙头企业Top10梳理
  2. 学习java可以做什么?学习java有什么用?
  3. ajaxpro安装和使用---有人说ajaxpro是ajax的替代品
  4. 什么是AppImage
  5. 说话人识别模型finetune
  6. 如何理解这段代码:void (*signal (int sinno,void(*func)(int)))(int)
  7. Java学习记录_1:MOOC《零基础学Java语言》课后习题解
  8. 一位全加器 VHDL设计与实现
  9. win10计算机右键属性打不开,右键电脑属性打不开|解决win10系统我的电脑属性打不开...
  10. 动态站点:部署论坛系统Discuz!