简单介绍一下Python中替换文本的方式。
replace / re
和 translate
replace / re
replace
相信大家比较熟悉,我们简单的给大家两个示例。分别为:单一替换和批量替换
。
1. 单一替换
replace
:
data = "test for replace"
data.replace("test", "")
>>> for replace
re
data = "test for re"
re.sub("test ", "", data)
>>> for re
replace
的速度是优于re
的速度的。所以大家尽量用replace
.
2. 批量替换
现在我有一堆数据需要替换,该怎么写呢?我们介绍一种比较优雅的方法:
下面的示例需要替换:[(|)|\n|']---'|'为分割表示。
replace:
replace_string = "()\n'"
replace_dict = {k: "" for k in replace_string}
data = "(good's way\n now is better than never)"
for k, v in replace_dict.items():
data = data.replace(k, v)
print(data)
>>> goods way now is better than never
re
:
replace_string = "()\n'"
replace_pattern = f"[{'|'.join(replace_string)}]"
data = "(good's way\n now is better than never)"
s = re.sub(replace_pattern, "", data)
>>> goods way now is better than never
translate
相信这个函数大家了解比较少,我们用刚才的例子进行举例:
replace_string = "()\n'"
translate_table = {ord(k): "" for k in replace_string}
data = "(good's way\n now is better than never)"
data.translate(translate_table)
>>> goods way now is better than never
大家需要注意的是:
translate
必须用ord 或者 str.maketrans 来制作映射表
,所以translate
一般用于单字符替换。速度方面,如果需要替换的字符串太多的话,translate
的速度是优于replace
的,所以需要根据场景进行选择哦!
小Tip就到这里,希望你能有所收获,byebye~