【发布时间】:2021-07-16 19:16:24
【问题描述】:
let string="James 18 Jenny 38 ";
let regEx=/(\w+\s\d+\s)\1/;
let result=string.match(regEx);
console.log(result)
我试图了解如何在捕获组中重复使用模式,但控制台返回 null:
有人能解释一下为什么用这种方法它不起作用吗? 如果我复制如下,它会以我想象的方式返回,因此我可能会错过一些关于语法的内容,但我不明白是什么。
let string="James 18 Jenny 38 ";
let regEx=/(\w+\s\d+\s)(\w+\s\d+\s)/;
let result=string.match(regEx);
console.log(result)
【问题讨论】:
-
反向引用
\1与第 1 组中捕获的内容相同,此处并非如此。 -
该模式首先匹配并捕获
James 18,然后\1告诉James 18has to be found again 与其余Jenny 38不匹配的原因。 -
模式中的反向引用很有帮助,例如如果定位模式可能与 varying characters within an otherwise stable pattern 一起出现,例如不同使用的引号。
标签: javascript regex capture-group