有问题的正则表达式是:
/\[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