import re
a=’eew \’ eawr,2 fd\n sa:21′
b=re.sub(r'[\’:\s ,]*’, ”, a) # 前面是正则表达式,匹配多种字符(串)
print(b)
解释一下这个正则表达式的意思:r'[\’:\s ,]*’
1:添加r,说明该字符串中全为普通字符(可参考:以r或u开头的字符串,按评论里IwillbecomeAIgod同学的说法是用于防转义),常用于正则表达式
2:[]内是一个字符集,字符集内的字符任何一个被匹配,都算匹配成功,比如r’a[bcd]e’,可以匹配到’abe’、’ace’、’ade’。
3:*代表匹配前一个字符0次或无限次。
4:\s代表的是空白字符,比如空格、换行符、制表符等等。
于是r'[\’:\s ,]*’组合起来就是匹配字符串中所有的的‘(单引号)、\n(换行符)、:(冒号)、,(逗号)
场景一 · 批量将不同的字符串替换为不同内容
# 要替换的内容 key-value
replist = {“1″:”一”,”2″:”二”,”3″:”三”}
txt = “111-222-333-112233-123”
def dl(t: str, repl: dict):
for i in repl:
t = t.replace(i,repl[i])
return txt
print(dl(txt,replist))
更高效的 第三方替换模块
pip install flashtext -i https://pypi.tuna.tsinghua.edu.cn/simple
from flashtext import KeywordProcessor
processor.add_keyword(‘Scala’, ‘Java’)
replaced = processor.replace_keywords(‘I like Scala.’)