猿问

JS正则表达式中使用圆括号时,用\n匹配第n个分组的问题

var str="I like test,eat,lol,drink,wow";

    var arr=str.match(/\b([a-z])[a-z]*\1\b/g);

    console.log(arr);

为什么输出是

["test", "lol", "wow"],没有like,eat,drink呢

不写\1就全部匹配到了

qq_797_1
浏览 2162回答 2
2回答

千秋此意

\n是反向引用的意思,你这里分组1匹配的是一个a-z的字符,后面反向引用\1即要求该位置匹配到和前面分组1捕获到的字符相同的字符,简单来说你这里要匹配的就是首尾字母相同的单词~(ps:如果问题解决望采纳~)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答