1. 程式人生 > >001_018 Python 一次完成多個字串替換

001_018 Python 一次完成多個字串替換

程式碼如下: 

#encoding=utf-8
print '中國'

# 一次完成多個字串替換
#利用正則表示式re的sub方法

import re
def multiple_replace(text,adict):
    rx = re.compile('|'.join(map(re.escape,adict)))
    def one_xlat(match):
        return adict[match.group(0)]
    return rx.sub(one_xlat,text) #每遇到一次匹配就會呼叫回撥函式

#把key做成了 |分割的內容,也就是正則表示式的OR
map1={'1':'2','3':'4',}
print '|'.join(map(re.escape,map1))

str='1133'
print multiple_replace(str,map1)

列印結果如下:

中國
1|3
2244