资讯专栏INFORMATION COLUMN

正则表达式断言语句

vslam / 2062人阅读

摘要:非获取匹配匹配但是不会捕获,不会获取到与有区别,但是可以被替换只匹配,不获取可以匹配,也可以被获取获取不到第二个括号内匹配的值和只有当后面紧跟着时,才匹配只有当后面不紧跟着时,才匹配相似点两者都不是匹配结果的一部分,既不会被替换掉和区别,也

1、?: 非获取匹配

(?:x)匹配x但是不会捕获,不会 $n 获取到(()有区别),但是可以被替换

(?:x) 只匹配,不获取

() 可以匹配,也可以被获取

"JavaScript is fun".replace(/([Jj]ava)(?:[Ss]cript)/,"$2");  // "$2 is fun" 获取不到第二个括号内匹配的值
"JavaScript is fun".replace(/([Jj]ava)([Ss]cript)/,"$2");  // "Script is fun"
2、?=?!

x(?=y) 只有当 x 后面紧跟着 y 时,才匹配 x

x(?!y) 只有当 x 后面不紧跟着 y 时,才匹配 x

相似点:两者都不是匹配结果的一部分,既不会被替换掉(?:区别),也不可以被$n获取到(?:一样
// ?= 和 ?! 区别
"a.jpg,a.png,a.gif,a.jpg".replace(/a(?!.jpg)/g, "*"); // "a.jpg,*.png,*.gif,a.jpg"
"a.jpg,a.png,a.gif,a.jpg".replace(/a(?=.jpg)/g, "*");  // "*.jpg,a.png,a.gif,*.jpg"

// ?: 和 ?= 区别
"JavaScript is fun".replace(/([Jj]ava)(?:[Ss]cript)/,"$1");  // "Java is fun"  
"JavaScript is fun".replace(/([Jj]ava)(?=[Ss]cript)/,"$1");  // "JavaScript is fun"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107670.html

相关文章

  • 硬刚正则达式的心得总结

    摘要:近几日对自己一直不太擅长的正则表达式做了一次全面的扫盲。量词在正则中,通常要表示一个表达式匹配的数量,这个时候量词就登场了。而正则默认是贪婪模式的。正则会默认对捕获组分配组数。 近几日对自己一直不太擅长的正则表达式做了一次全面的扫盲。心疼自己之余还是有一些收获吧,在这里做一个比较零散的总结,整理一些对理解正则比较有利的点。 一、? 你没有看错,就是黑人问号中的问号,这个字符在正则里面算...

    txgcwm 评论0 收藏0
  • JS正则达式语法

    摘要:正则表达式语法正则表达式是由普通字符例如数字字母标点和用来表示特定字符或字符集的元字符以及特殊字符用作限定条件或特殊功能的字符组成的文字模式。正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。 正则表达式语法 正则表达式是由普通字符(例如数字、字母、标点和用来表示特定字符或字符集的元字符)以及特殊字符(用作限定条件或特殊功能的字符)组成的文字模式。 普通字符 所...

    DC_er 评论0 收藏0
  • 软件接口测试工具Jmeter使用核心详解【建议收藏】

    用Jmeter做接口测试只需要掌握几个核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根据工作需要和职业规划来学习更多的内容。这篇文章在前面接口测试框架(测试计划--->线程组--->请求--->查看结果树)的前提下,来介绍必须要掌握的几个核心功能,力求用最短的时间取得最大的成果。 在前面的文章中我提到,用Jmeter做接口测试的核心是单接口测试的参数化和关联接口测试...

    zoomdong 评论0 收藏0
  • 正则与JS中的正则

    摘要:注意本文将正则与中的正则分开讨论。正则零宽断言更多参考各种语言对于正则不同支持参考单行模式与多行模式通过设置正则表达式后的修饰符可开启对应的匹配模式单行模式和多行模式。 最近这段时间帮同学处理一些文档, 涉及到一些结构化文档的工作大部分都得使用正则表达式, 之前对于正则的认识大多来源于语言书上那几页的介绍, 自己也没有用过几次。这里将我之前感到模糊的概念作个整理。因为对JS了解多点,所...

    firim 评论0 收藏0
  • 前端培训-初级阶段(13) - 正则达式

    摘要:前端培训初级阶段语法变量值类型运算符语句前端培训初级阶段内置对象函数前端培训初级阶段类模块继承基础内容知识我们会用到。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。 该文为前端培训-初级阶段(1...

    suemi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<