1. 程式人生 > >python 回調當前匹配值並進行sub替換

python 回調當前匹配值並進行sub替換

需要把下面的str中特殊符號兩邊新增空格,這裡我們都能想到使用查詢替換,但是直接使用迴圈查詢替換效率太低下,所以這裡想直接使用正則查詢來替換,這裡難點是如何獲取當前匹配到的值是什麼,程式碼如下

import re
str='abc,def,g.h'
patt=re.compile("([,.])")
print re.sub(patt,lambda m:' '+m.group(1)+' ',str)
#output: abc , def , g . h
#done
這裡re.sub的第二個引數為:replacement repl.repl can be either a string or a callable,也就是說可以是一個callable傳入當前匹配結果為引數的回撥函式,理解這個就完成目的了