Nec*_*ron 3 python string replace
如果我运行此代码:
s.translate(str.maketrans({'as': 'dfg', '1234': 'qw'}))
Run Code Online (Sandbox Code Playgroud)
我会得到:
ValueError: string keys in translate table must be of length 1
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 一次替换多个字符str.translate?文档说我可以使用codecs灵活的方法,但我不知道如何使用。
如果不是,那么可以做些什么呢?
没有。str.translate可单独用于替换单个字符。替换字符串可以是任意长度,但键必须是单个字符。
当他们的文档提到codecs他们说您可以实现自定义编码,注册它然后使用它打开文件......这不是调用类似的问题codecs.maketrans,这是相当多的工作。我个人会使用re.sub函数替换:
replacements = {'as': 'dfg', '1234': 'qw'}
re.sub('({})'.format('|'.join(map(re.escape, replacements.keys()))), lambda m: replacements[m.group()], text)
Run Code Online (Sandbox Code Playgroud)
这似乎做你想做的事:
>>> re.sub('({})'.format('|'.join(map(re.escape, replacements.keys()))), lambda m: replacements[m.group()], "test as other test1234")
'test dfg other testqw'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |