【发布时间】:2015-09-03 23:58:49
【问题描述】:
我有这个正则表达式,但我不知道它有什么问题
tag = new RegExp('(\\['+tag+'=("|'|)(.*?)\1\\])((?:.|\\r?\\n)*?)\\[/'+tag+']','g');
bbcode标签可以有双引号、单引号或不带引号。
[tag="teste"]123[/tag]
[tag='teste']123[/tag]
[tag=teste]123[/tag]
捕获中所需的输出:teste 和 123
要匹配可选引号,它应该是("|'|)、(["|\']*) 或("|\'?)?
【问题讨论】:
-
只是一些语法错误:
new RegExp('(\\['+tag+'=(["\']|)(.*?)\\1\\])([\\s\\S]*?)\\[/'+tag+']','g');。我还将((?:.|\\r?\\n)*?)更改为([\s\S]*?),因为这似乎是您的意图 -
如果你不知道它有什么问题,那你怎么知道它有问题?
-
@Eduardo 我发现它很难阅读,所以我根据您在 cmets / answer中提供的信息进行了扩展
标签: javascript regex syntax