我有一段文本要在javascript中运行一些正则表达式以匹配[code]
。我知道我可以/\[code\]/g
用来做到这一点。
但是,我想忽略使用双括号的情况,如中所示[[code]]
。因此,换句话说,在字符串中[code] [[code]] [code]
,仅第一个和最后一个匹配项应匹配。
这可能吗?
JS不支持否定的lookbehind断言,但是对于您来说,否定的lookahead就足够了:
'[code] [[code]] [code]'.match(/\[code\](?!\])/g)
此正则表达式可确保匹配后的下一个字符[code]
不是]
UPD:
可以改进为
'[code] [[code]] [code]'.match(/\[(?!\[)code\](?!\])/g)
感谢Felix Kling。
注意:如果括号不成对,它将表现得很奇怪。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句