如题, 正则将字符串:
zzzzzzz[a]123[/a],zzz[a]123[/a]
替换为:
zzzzzzz<a>123</a>,zzz<a>123</a>
7 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[(.+?)\]/g, function(s, tag){
return '<' + tag + '>'
})
MYYA
TA贡献1868条经验 获得超4个赞
如果用python的话,都不需要正则:
src = 'zzzzzzz[a]123[/a],zzz[a]123[/a]'
# 1
print(src.replace('[','<').replace(']','>'))
# 2
intab = "[]"
outtab = "<>"
trantab = str.maketrans(intab, outtab)
print(src.translate(trantab))
幕布斯7119047
TA贡献1794条经验 获得超8个赞
'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[(.*?)\]/g,'<$1>')
'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[([^\[\]]*?)\]/g,'<$1>')
德玛西亚99
TA贡献1770条经验 获得超3个赞
如果只是简单的把[
替换成<
,]
替换成>
。可以用下面方案。
var str = 'zzzzzzz[a]123[/a],zzz[a]123[/a]';
var result = str.replace(/(\[|\])/g,($0 => {
var escapeChars = {
'[': '<',
']': '>',
}
console.log($0);
return escapeChars[$0];
})
console.log(result);
// 也可以加上全局匹配写成跟二楼python的回答类似。
另外:@sarike 的正则可以优化为/\[([^\[\]]*)\]/
慕丝7291255
TA贡献1859条经验 获得超6个赞
最简单就是这样了吧
'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[/g,'<').replace(/\]/g,'>')
添加回答
举报
0/150
提交
取消