1

私はPythonであなたが見つけて置き換えることができることを知っています

 re.sub('(b)','\\1BB','abc')

しかし、1 桁の数字を取得して x を追加するなど、さらに処理が必要な場合は、どのように進めますか?

関数でそれを実行し、元の文字列をスライスして新しい文字列に貼り付け、正規表現の一致パターンを変更しても問題はありませんが、それを行う最も簡単な方法は何ですか?

4

1 に答える 1

2

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' 
于 2013-05-29T18:50:33.407 に答える