私はPythonであなたが見つけて置き換えることができることを知っています
re.sub('(b)','\\1BB','abc')
しかし、1 桁の数字を取得して x を追加するなど、さらに処理が必要な場合は、どのように進めますか?
関数でそれを実行し、元の文字列をスライスして新しい文字列に貼り付け、正規表現の一致パターンを変更しても問題はありませんが、それを行う最も簡単な方法は何ですか?
re.subの単純な置換文字列ではなく、関数を呼び出すことができます:
>>> re.sub('(\d+)',
... lambda x: ' {}+3={} '.format(x.group(1),int(x.group(1))+3),
... 'a12c')
'a 12+3=15 c'
または、
def r(m):
return ' {}+{}={} '.format(m.group(1),m.group(2),
int(m.group(1))+int(m.group(2)))
>>> print re.sub('(\d)(\d)',r,'a12c')
'a 1+2=3 c'