簡體   English   中英

Javascript Regex - 獲取所有帶有方括號 [] 的字符串

[英]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);
  1. /\\[(.*?)\\]/*? 意味着懶惰,匹配盡可能少的內容。
  2. 您真正想要的是內容中的所有匹配項。 試試修飾符g
  3. 試試這個, http://regex101.com/r/aD6cM8/1 任何匹配都以[開始,以]結束,但不允許[]介於兩者之間。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM