为了账号安全,请及时绑定邮箱和手机立即绑定

请教:Python字符串替换的一个问题

请教:Python字符串替换的一个问题

撒科打诨 2019-02-26 04:20:33
今天上网看到有人贴出来一个Python中字符串替换的函数replace_words。大意是随便一个txt文件,用Python读取之后,可以用自定义的dictionary,把所有的key替换成value. def replace_words(text, word_dic): yo = re.compile('|'.join(map(re.escape, word_dic))) def translate(mat): return word_dic[mat.group(0)] return yo.sub(translate, text) 我试了一下,还挺好用的。 my_dic = {'Colour':'Color', 'Centre':'Center'} text_2 = replace_words(text_1, my_dic) 结果文件text_1里所有的Colour和Centre都被替换了。 但是这个毕竟是网上看来的,有几个地方不太明白,请教一下: 问题一,第2行的'|'.join(map(re.escape, word_dic)),先用escape对字符串中的非字母数字进行转义,然后为什么要用'|'把我的dic这么一个字典连起来?字符可以取“或”,字典可以“或”么? 问题二,第4行的word_dic[mat.group(0)],直接写成word_dic[mat]不好么? 问题三,第5行的yo.sub(translate, text),这个是最费解的…… re.sub很好理解,但是这个是re.compile.sub,而且是用text这样一个read()出来的文本、去替换translate这样一个空函数?字符替换函数? 网上随手找的这么一个函数,因为我水平有限还请大家多指点。谢谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 687 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信