1. 程式人生 > >一次性替換多個字元

一次性替換多個字元

temp_str = "abcdefgh"  # 待替換字串
multi_map = temp_str.maketrans({"a": "0",
                                "g": "0"})  #  多個對映,實現多個替換
ret = temp_str.translate(multi_map)  # 一次性替換
print(ret)

# 注意此方法multi_map的鍵的長度必須是1

還有就是簡單的一個方法封裝

import re

my_str = "a\rb\xa0545$$k"
rep = {"\r": "", "\xa0": ""}


def multiple_replace(text, multi_map):
    """
    一次性替換多個字串
    :param text: 待替換字串文字
    :param multi_map:替換對映
    :return: ret_str 替換完成後的字串文字
    """
    multi_map = dict((re.escape(k), v) for k, v in multi_map.items())
    pattern = re.compile("|".join(multi_map.keys()))
    ret_str = pattern.sub(lambda m: multi_map[re.escape(m.group(0))], text)
    return ret_str


ret_test = multiple_replace(my_str, rep)
print(ret_test)

#  暫未確定是否有bug