正则表达式关键词解析

在使用正则表达式的时候,我们经常会使用()把某个部分括起来,称为一个子模式。

子模式有Capturing和Non-Capturing两种情况。

 Capturing指获取匹配or捕获匹配 ,是指系统会在幕后将所有的子模式匹配结果保存起来,供我们查找或者替换。如后向引用的使用;

 Non-Capturing指非获取匹配or非捕获匹配 ,这时系统并不会保存子模式的匹配结果,子模式的匹配更多的只是作为一种限制条件使用,如正向预查,反向预查,正向肯定预查,正向否定预查等。

后向引用(也叫反向引用)

使用"\数字"代表前面某个子模式的匹配内容。

我们使用正则表达式,在很多场景下的作用是为了查找和替换。在查找时,使用后向引用来代表一个子模式,语法是"\数字",而在替换中,语法是"$数字"。数字 表示这里引用的是前面的第几个子模式。可参考命名捕获分组

预查、正向、反向、肯定、否定 预查

包括正向预查,反向预查,细分了还各自有肯定预查和否定预查。

特点:

所有的预查都是非获取匹配,不消耗字符。也就是说,在一个匹配发生后,在匹配字符之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

正向

匹配后面跟着的东西是否等于/不等于

反向

匹配前面跟着的东西是否等于/不等于

反向预查,pattern长度必须是固定的,也就是说pattern中不能出现诸如*.等这类字符使得pattern匹配的长度不固定;但是正向没有这个要求。

肯定

匹配后面/前面跟着的东西是否等于

否定

匹配后面/前面跟着的东西是否不等于

正向肯定预查

(?=pattern) 预测后面的字符串必须匹配上pattern

先给一个简单的例子:

匹配英文句子中带ing的单词,但是不要ing。

var con="coming soon,going gogogo" var reg = /\b[\w]+(?=ing\b)/g;//匹配带ing的单词,但是不要ing。注意:如果ing后不加\b,类似于goingabc也会匹配。 console.log(con.match(reg));

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsswdx.html