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

Javascript REGEX matching two brackets [[something]]

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

这是我目前所掌握的 var regex = /([\[\|\]])\w+/g;

然而这与上面的匹配是这样的[match

如有任何帮助,我们将不胜感激

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

使用以下替换:

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

this demo

/\[\[(.*?)]]/g 将找到所有非重叠出现的 [[,后跟除换行符以外的 0+ 个字符(如果您还需要匹配换行符,请替换为 [^]*?[\s\S]*?), 然后是两个文字 ] 符号(注意,在 JS 模式中,您不需要将它们转义到字符 class 之外)。

.*? 匹配尽可能少的除换行符之外的任何字符,以使引擎 return 成为有效匹配,即匹配到第一次出现的 ]]。如果匹配必须包括直到最后一次出现 ]] 的所有内容,那么 .* 就足够了。

请注意,如果 [[ / ]] 中的子字符串很长,我宁愿将整个正则表达式模式展开为 /\[\[([^\]]*(?:](?!])[^\]]*)*)]]/g