为了账号安全,请及时绑定邮箱和手机立即绑定

正则将[a]123[/a]替换为<a>123</a>

正则将[a]123[/a]替换为<a>123</a>

慕田峪9158850 2019-02-27 07:29:20
如题, 正则将字符串: 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 + '>'
})
查看完整回答
反对 回复 2019-03-01
?
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))
查看完整回答
反对 回复 2019-03-01
?
幕布斯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>')

查看完整回答
反对 回复 2019-03-01
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

直接替换更简单吧、不就两个符号
str.replace('[','<').replace(']','>')

查看完整回答
反对 回复 2019-03-01
?
德玛西亚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 的正则可以优化为/\[([^\[\]]*)\]/

查看完整回答
反对 回复 2019-03-01
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

最简单就是这样了吧

'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[/g,'<').replace(/\]/g,'>')
查看完整回答
反对 回复 2019-03-01
?
Helenr

TA贡献1780条经验 获得超4个赞

'zzzzzzz[a]123[/a],zzz[a]123[/a]'.replace(/\[([^\[\]]+)?\]/g,'<$1>')
查看完整回答
反对 回复 2019-03-01
  • 7 回答
  • 0 关注
  • 385 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信