2017-11-19 5 views
-1

は正規表現が括弧内のアイテムの試合で貪欲であることを取得できません[]この入力を考えると

[[00]、[01]、[02]、[03]]

私は[]内のすべての値を抽出しようとしています。

私はこの/[^[\]]+(?=])/g のようなルックスを作り上げてきました。しかし、私は私の入力にでてみた場合、それは最初の要素だけを返す正規表現

$/[^ [\]] +(?=])/g.exec( '[[00]、[01]、[02]、[03]]');

$ [ '00'、インデックス:3、入力: '[[00]、[01]、[02]、[03]]']私は理解していないことは私です

正規表現を構築してhttps://regex101.com/r/QhZDMR/1でテストしたところ、すべての値が正常に返されているようです。

+0

質問と正規表現のデモでは、異なる正規表現があります。 –

+0

JS正規表現で複数の一致を取得することは、長い間解決された問題です。リンクされたdupeの理由を参照してください。 –

+0

不一致を修正しました。私はエスケープされた '\\'を削除しました。 @ Ec_は私が探していた答えを実際に提供しました。 – Laurier

答えて

0

exec関数は最初の一致のみを検索します。代わりに、次のようにマッチを使用してください:

"[[00], [01], [02], [03]]".match(/[^[\]]+(?=])/g) 
+0

ありがとう、これを知らなかった。 upvoteへのより多くの担当者が必要:) – Laurier

関連する問題