深刻理解js正则表达式-分组

深刻理解js正则表达式-分组
深刻理解js正则表达式-分组

以前写过关于新手新手的介绍文章,这个思想比较了解正则表达式,但是今天我遇到了一个坑,你可能不够仔细,今天重点讲解了共享javascript正则表达式和大家。如果你不懂js正则表达式,可以点击这里了解更多。

分组在正规化中被广泛使用。我所理解的分组是一对括号()。每对括号代表一个分组。

捕获分组

非捕获分组

捕获分组

捕获组将在相应的函数中获得相应的分组的结果,如第二项和第三项。
var();
var str =新test001 test002;
console.log(str.match(REG)); / / {test001
代码( +)是一个包(有些人叫他,但说子模式)是相同的意思。在上面的例子中,test001完全匹配的结果,然而,数据包是从整个比赛结果(也被称为test001)搜索和子模式, D有明显的1个字,但今天遇到的情况
var = (测试);
var str =新test001 test002;
console.log(str.match(REG)); / / {test001
不同的是( D +)代替( D)+,整个比赛的结果仍然是test001,但第一组比赛的结果是不同的。让他们的差异分析

( D +)这是一个数据包的整体,因为匹配模式默认情况下是贪婪模式的结果是说尽量匹配所有 d + 001,然后外面加一对圆括号是一包,一包,结果是1看第二一个例子( D)+这是一个贪婪的模式将匹配0,然后是0将与过去的1,为此,看起来也像,是无差异的第一个例子,但集团( D)说,根据一个数,我前理解是0但这是一种误解。因为整个匹配是贪婪的方式,尽可能多的比赛 D包,它会抓住最后的比赛结果1。如果它是非贪婪模式,它将匹配尽可能少。
var = (测试);
var str =新test001 test002;
console.log(str.match(REG)); / / {test001
所以()匹配结果是0,虽然有一个匹配可以匹配结果,但这里是尽可能少匹配。

非捕获分组

非包被捕获在有些地方需要使用一对括号,但他们不想让他成为一个数据包的捕获也不想要这包是类似于匹配exec函数获得在括号前面通常说:是(:模式)成为一个非捕获分组,
var = (测试);
var str =新test001 test002;
console.log(str.match(REG)); / / {test001
这样,匹配结果中就不会有包匹配的内容,即1。少于第二项。

本文重点讨论了(+ +)和(+)+之间的区别,也是我今天踏上的一个坑。如果有错误,请改正。

这种深入的了解JS正则表达式--分组是萧边共享你的全部内容。我希望能给你一个参考,希望你能支持它。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部