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.’)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注