2017-04-14 27 views
0

我試過這段代碼:如何使用regexp返回多個匹配?

/\[\[(.*?)\]\]/g 

從文本中返回多個匹配這樣的:一些[文字],甚至[更多]文本。但不是text, more,它只返回text。我做錯了什麼? 在此先感謝。

+0

@FPeter你如何得到'match'? – kennytm

+3

@dawg正則表達式沒有問題。 –

+0

你使用'match()'還是'exec()'?後者僅返回第一次出現的匹配並需要一個while循環來檢索所有匹配的組。 – Terry

回答

0

正則表達式是確定的:

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

您發佈的答案是肯定的*正則表達式* – Mohammad

0

你的正則表達式是正確的,其中包括全球匹配標誌/g

如果使用match方法,它應該可以正常工作。

var stringToTest = "some [[text\]\] and even [[more]] text"; 
 
var regexToTest = /\[\[(.*?)\]\]/g; 
 

 
var matches = stringToTest.match(regexToTest); 
 
console.log(matches)

+1

您發佈的答案是肯定的*您的正則表達式正確* – Mohammad

+0

它顯示了匹配方法以及它在JS中的工作方式。 – Agalo

+0

比賽如何回到方括號?你將如何修改這個_only_返回正常大括號('。*?')之間的內容? – Pineda

0

嘗試將整個正則表達式多次匹配。像這樣: /([[*?]])+/g