ABC DEF This doesn't"> ABC DEF This doesn't"> ABC DEF This doesn't" />

マッチ[ABC DEF](http://google.com)

次の文字列と一致するようにしていますが、成功しません。

私はこれまでこれをしてきました。

/\[([^\]]+)(\([^\)]+)/

これは(\([^ \)] +)で動作しない最後の部分です。

言い換えると;

var meta = "[ABC DEF](http://google.com)"

  • This part works.

    meta.match(/\[([^\]]+)/) => ABC DEF

  • This doesn't work.

    meta.match(/\[([^\]]+)(\([^\)]+)/)//=> null

これは私が欲しいものです。

["ABC DEF"、 "http://google.com"]

それがうまくいかない理由を知っている人は誰ですか?

1

1 答え

あなたは] の最後を見逃しました。また、は文字クラスでエスケープする必要はありません。最後に、(...)の中にリテラル)を入れないでください。それがマッチ配列に存在するようにします。

meta.match(/\[([^\]]+)]\(([^)]+)\)/)
                      ^  ^  ^
5
追加された
完璧に働いた、ありがとう!
追加された 著者 Oleander,
@Reid:すべき? []がオープンしていないので、無意味ではありません。
追加された 著者 pimvdb,
末尾の] をエスケープする必要があります
追加された 著者 Reid,
ああ、なるほど;あなたは正しい。私は正規表現でそれをエスケープするのに慣れているだけで、私はそれについても考慮しませんでした。
追加された 著者 Reid,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript