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

在某些字符周围填充

在某些字符周围填充

斯蒂芬大帝 2021-09-14 20:26:39
例如,我有这个字典:dict = { "(": " ( ", ")": " ) " ... }我有字符串,例如:"if (x < 0) {" 我希望它是"if ( x < 0 ) {"有什么方法可以做到?(使用字典并不重要,重要的是在某些字符周围添加填充)
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果您想在填充已经存在的情况下避免双空格(如您的示例中所示),您可以使用正则表达式,使用前瞻和后视查找需要填充的字符前面(?<=...)或后面(?=...)的位置非空格性格\S:


>>> padding = "()"

>>> p = r"(?<=\S)(?=[{0}])|(?<=[{0}])(?=\S)".format(padding)

>>> re.findall(p, text)

['', '']

>>> re.sub(p, " ", text)

'if ( x < 0 ) {'


查看完整回答
反对 回复 2021-09-14
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

尝试使用str.replace:


def pad(s):

    for k, v in dictionary.items():

        s = s.replace(k, v)

    return s


>>> dictionary = { "(": " ( ", ")": " ) "}

>>> pad("if (x < 0) {")

'if  ( x < 0 )  {'


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

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