我试过这个(使用javascript):
"[a][\"][\"2]".replace(/(\[)[\"](\])/g, "$1replaced$2")
//checks for double quote between [ and ]
并返回
"[a][replaced]["2]"
所以当前的正则表达式只检查一个双引号字符(“),如何检查匹配组中的字符串是否包含一个"
字符({{} 1}}和[
)?
所以我正在寻找的结果正在改变:
]
到
[a]["]["2]
基本上替换[a][replaced][replaced2]
和[
答案 0 :(得分:1)
这是你想要的
"[a][\"][\"2][asdf\"1234]".replace(/(\[)([^\]]*)(\])/g, function (match, leftBr, guts, rightBr) {
return leftBr + guts.replace(/\"/g, "replaced") + rightBr;
});
它抓住每个括号组的内容并删除引号。
答案 1 :(得分:1)
这是一种工作方法:
\[[^\[]*"[^\]]*\]
我用这些字符串测试了它:
[a]["]
[a]["]["2]
[a]["]["2]["3]["4]
编辑:这也适用于像这样的字符串
[12"34]