[英]Javascript Regex - Get All string that has square brackets []
我有下面的字符串數據:
var data = "somestring[a=0]what[b-c=twelve]----[def=one-2]test"
我需要獲取所有包含方括號[]
字符串。 這是我想要的結果。
["[a=0]", "[b-c=twelve]", "[def=one-2]"]
我試過使用正則表達式/\\[(.*?)\\]/
,但我得到的是只有第一個數組元素是正確的,接下來的元素基本上是相同的值但沒有方括號。
data.match(/\[(.*?)\]/);
// result => ["[a=0]", "a=0"]
我應該使用什么正則表達式來實現我想要的結果? 先感謝您。
您想使用g
(全局)修飾符來查找所有匹配項。 由於括號包含在匹配結果中,因此您不需要使用捕獲組,我使用否定來消除回溯量。
someVar.match(/\[[^\]]*]/g);
/\\[(.*?)\\]/
, *?
意味着懶惰,匹配盡可能少的內容。g
[
開始,以]
結束,但不允許[
或]
介於兩者之間。 someVar.match(/\\[([^\\[\\]]*)\\]/g)
您應該將g
開關添加到您的正則表達式中:
someVar.match(/\[(.*?)\]/); // result => ["[a=0]", "a=0"]
結果是
[ "[a=0]", "[b-c=twelve]", "[def=one-2]" ]
您的正則表達式是正確的,只需在其后綴g
即可使其成為全球性的:
someVar.match(/\\[(.*?)\\]/g);
這里有更多信息: http : //www.w3schools.com/jsref/jsref_regexp_g.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.