Javascript 如何使用regexp返回多个匹配项?

Javascript 如何使用regexp返回多个匹配项?,javascript,regex,Javascript,Regex,我尝试了以下代码: /\[\[(.*?)\]\]/g 要从如下文本中返回多个匹配项:一些[[text]]甚至[[more]]文本。但是它只返回text,而不是text,more。我做错了什么? 提前感谢。正则表达式可以: var test = "[[text]] and even [[more]] text.".match(/\[\[(.*?)\]\]/g); console.log(a); > ["[[text]]", "[[more]]"] 您的正则表达式是正确的,其中包括全局匹配

我尝试了以下代码:

/\[\[(.*?)\]\]/g
要从如下文本中返回多个匹配项:一些[[text]]甚至[[more]]文本。但是它只返回
text
,而不是
text,more
。我做错了什么? 提前感谢。

正则表达式可以:

var test = "[[text]] and even [[more]] text.".match(/\[\[(.*?)\]\]/g);
console.log(a);
> ["[[text]]", "[[more]]"]

您的正则表达式是正确的,其中包括全局匹配标志
/g

如果使用
match
方法,它应该可以正常工作

var stringToTest=“一些[[text\]\]甚至[[more]]text”;
var regextest=/\[\[(.*?\]\]\]/g;
var matches=stringToTest.match(regtest);

log(匹配)
尝试多次匹配整个正则表达式。这样地:
/([[.*?]])+/g

@FPeter如何获得
匹配项
?@dawg正则表达式没有问题。您使用的是
match()
还是
exec()
?后者只返回第一个匹配项,需要一个while循环来检索所有匹配组。您发布的答案是说您的正则表达式正确。它还显示了匹配方法及其在JS中的工作方式。为什么匹配项返回方括号?您将如何修改它以只返回普通大括号(
*?
)之间的内容?您发布的答案是说regex是正确的