subによる文字列の置換
入門Python3 7.1.5
subで文字列の置換ができます。
import re str1 = "aa11bb22cc33bb" str2 = re.sub(r'\d+',':',str1) print(str2)
$ py main.py aa:bb:cc:bb
グループ化して後方参照することもできます。
import re str1 = "aa11bb22cc33bb" str2 = re.sub(r'(\d+)',r'[\1]',str1) print(str2)
$ py main.py aa[11]bb[22]cc[33]bb
また関数を指定して後方参照を関数で受け取ることもできます。関数にはMatchオブジェクトが来ます。
import re def foo (match): '''数値を二倍にして置換する''' return str(int(match.group()) * 2) str1 = "a1b2c3d4" str2 = re.sub(r'\d',foo,str1) print(str2)
$ py main.py a2b4c6d8