Javascript REGEX匹配两个括号[[something]]

时间:2016-06-17 14:40:29

标签: javascript regex string-matching

尝试匹配任何宽度和包括两个括号,例如[[match this]]所以我可以不用括号替换。

这就是我到目前为止var regex = /([\[\|\]])\w+/g;

然而,这与上面的[match

相符

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

您的([\[\|\]])\w+匹配1个符号 - [|](带([\[\|\]])),然后是1个或多个字(字母数字或下划线字符) 。请参阅how your regex actually performs

使用以下替代品:

.replace(/\[\[(.*?)]]/g, "$1")

请参阅this demo

/\[\[(.*?)]]/g会发现[[的所有非重叠事件,其次是换行符以外的0 +字符(如果您还需要匹配换行符,则替换为[^]*?或{ {1}}),然后是两个文字[\s\S]*?符号(请注意,您不需要在JS模式中将它们转义到字符类之外)。

]尽可能少地匹配换行符之外的任何字符,以使引擎返回有效匹配,即它匹配第一次出现的.*?。如果匹配必须包含最后一次出现]]的所有内容,则]]就足够了。

请注意,如果.* / [[中的子字符串很长,我宁愿将整个正则表达式模式展开为]]