1

問題の正規表現は次のとおりです。

/\[quote\]((?:[^](?!\[quote\]))*?)\[\/quote\]/gi

私がそれを適用している文字列は

[quote]Level 10
[quote]Level 9
[quote]Level 8
[quote]Level 7
[quote]Level 6
[quote]Level 5
[quote]Level 4
[quote]Level 3
[quote]Level 2
[quote]Level 1[/quote]
Level 2[/quote]
Level 3[/quote]
Level 4[/quote]
Level 5[/quote]
Level 6[/quote]
Level 7[/quote]
Level 8[/quote]
Level 9[/quote]
Level 10[/quote]

RegExp() を使用してこれを作成すると、Chrome がハングします。

new RegExp("\[quote\]((?:[^](?!\[quote\]))*?)\[\/quote\]", "gi")

http://regexpal.com/などの一部のパーサーでは、この正規表現が正しく解析されないように見えることにも注意してください。

私の目的は、引用符を裏返しに一致させることです(最も内側のセットから始めて、外に出ていきます)。正規表現を修正するためのアイデア、または私がやろうとしていることを行う他の方法はありますか?

編集: 正しく動作することを確認したい場合は、ここで動作します: http://regexr.com?34i3p

4

1 に答える 1