python中如何替换字符串,字符串替换指定字符python
今天上网看到有人贴了一个函数replace_words用于Python中的字符串替换。意思是任何txt文件。在Python中读取后,可以使用自定义字典将所有键替换为值。
def replace_words(text,word_dic):
yo=re.compile( )。join(map(re.escape,word_dic)))
定义翻译(mat):
return word_dic[mat.group(0)]
return yo.sub(翻译,文本)
我试过了,它起作用了。
my_dic={Colour:Color , Centre:Center}
text_2=replace_words(text_1,my_dic)
因此,文件text_1中的所有颜色和中心都已被替换。
但这毕竟是网上的,有几个地方我不太懂。请问我:
首先是“”。第2行join(map(re.escape,word_dic))先用escape对字符串中的非字母数字字符进行转义,那为什么要用“”把我的dic连接成字典呢?字符可以带“或”,字典可以带“或”?
二、第4行的word_dic[mat.group(0)]直接写成word_dic[mat]不好吗?
第三,第5行中的yo.sub(translate,text ),这是最令人费解的.关于。sub很好理解,但这是re。堆。sub,它使用文本read () like text替换空函数,如translate?字符替换功能?
在网上发现了这样一个功能,因为水平有限,请大家多多指教。谢谢你
首先是“”。第2行join(map(re.escape,word_dic))先用escape对字符串中的非字母数字字符进行转义,那为什么要用“”把我的dic连接成字典呢?字符可以带“或”,字典可以带“或”?Map(re.escape,word_dic)等价于map(re.escape,word.dic.keys())
#返回包含所有字典关键字的列表
.join(_that_list__) #用连接所有键。
#返回彩色中心
“”在正则表达式中表示“或”。
二、第4行的word_dic[mat.group(0)]直接写成word_dic[mat]不好吗?你不能。
Mat是一个正则表达式。在搜索文本之后,它返回一个匹配对象。这个对象不是字典中的键,word _ DIC的键是string。
第三,第5行中的yo.sub(translate,text ),这是最令人费解的.关于。sub很好理解,但这是re。堆。sub,它使用文本read () like text替换空函数,如translate?字符替换功能?Re.compile.sub -将在文本中搜索“ColourCentre”(颜色或中心)。找到匹配后,调用translate函数进行转换。颜色将被转换成word _ DIC [Colour],即 Color
请注明文章来源和网址:https://www.iplaypy.com/wenda/wd19088.html.
相关文章推荐
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。