深刻理解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正则表达式--分组是萧边共享你的全部内容。我希望能给你一个
参考,希望你能
支持它。