2

この質問は、 「エスケープ」文字が存在しない限り一致しますが、承認された解決策がすべての場合に機能するとは限りません。

私のシナリオでは、JavaScript を使用しており、\[スラッシュ] でエスケープしない限り、[角括弧] でコンテンツをキャプチャしたいと考えています。

RegexPal はこちらです。

正規表現

(?:[^\\]|^)\[([^\]]*)\]

問題を確認するためにテストするサンプル:

This is a [block], but as you can see it is trying to capture the preceeding character. 

You can \[escape] a block, but this creates \[problems] with [blocks] that are [stacked][back][to][back].
4

1 に答える 1

1

Javascript の正規表現エンジンは後読みをサポートしていません..

この回避策を使用できます

(?:\s|^|\])\[(\w+)(?=\])

グループ 1 は、必要なデータを[]

デモ

于 2013-06-29T18:01:11.840 に答える