尝试匹配任何宽度和包括两个括号,例如[[match this]]
所以我可以不用括号替换。
这就是我到目前为止var regex = /([\[\|\]])\w+/g;
然而,这与上面的[match
任何帮助将不胜感激
答案 0 :(得分:2)
您的([\[\|\]])\w+
匹配1个符号 - [
,|
或]
(带([\[\|\]])
),然后是1个或多个字(字母数字或下划线字符) 。请参阅how your regex actually performs。
使用以下替代品:
.replace(/\[\[(.*?)]]/g, "$1")
请参阅this demo
/\[\[(.*?)]]/g
会发现[[
的所有非重叠事件,其次是换行符以外的0 +字符(如果您还需要匹配换行符,则替换为[^]*?
或{ {1}}),然后是两个文字[\s\S]*?
符号(请注意,您不需要在JS模式中将它们转义到字符类之外)。
]
尽可能少地匹配换行符之外的任何字符,以使引擎返回有效匹配,即它匹配第一次出现的.*?
。如果匹配必须包含最后一次出现]]
的所有内容,则]]
就足够了。
请注意,如果.*
/ [[
中的子字符串很长,我宁愿将整个正则表达式模式展开为]]
。