0

[.*]のように括弧がバックスラッシュでエスケープされている場合ではなく、 のすべての一致を取得するにはどうすればよい\[.*\]ですか?

JavaScript 関数new RegExp("\\[.*\\]", "g")を使用してすべてを取得できます[.*]\[.*\]すべて(エスケープされた括弧)を除外するにはどうすればよいですか?

入力は次のようになります。

div\[data-custom-attribute='References'\][matchme]

この場合、正規表現は一致する必要があり[matchme]ます。

4

3 に答える 3

1

http://rubular.com/r/16q3jSPHN0

[^\\](?:\]?(\[(.+?)\]))ほとんどの場合に機能するはずです。

編集:

\[test\][test]Rory が指摘したように、これは一致しないようです。そのため、複数の正規表現を使用せずに良い解決策を考えることはできませんが、 1 つだけが必要な場合は、これを試してください: http://rubular.com/r/QBqFAbqW9E

(?:[^\\](?:\]?(\[(.+?)\]))|((?:\]?(\[(.+?)\])))\\)

一致グループは、通常のブロックのにエスケープされた角かっこを含むブロックが発生した場合は最初の 3 つに入力され、逆の場合は最後の 3 つに入力されます。

Match 1
1.   
2.   
3.  [test]
4.  [test]
5.  test
Match 2
1.  [test]
2.  test
3.   
4.   
5.   
于 2013-06-24T15:50:17.133 に答える
0

次のようなキャッチできないグループを使用します[^\\]

[^\\]\[.*[^\\]\]
于 2013-06-24T15:51:13.587 に答える