「(?P・・・)」による名前付き後方参照

入門Python3 7.1.3.8


「(?P<名前>・・・)」という構文を使うと名前付きの後方参照ができます。参照するには「\g<名前>」と書きます。

import re

str1 = "aa1bb2cc3bb4"
str2  = re.sub('(?P<foo>\d+)',r'[\g<foo>]',str1)
print(str2)
$ py main.py
aa[1]bb[2]cc[3]bb[4]


またgroupでの引数にもこの名前で値を得ることが可能となります。

import re

str1 = "aaa123bbb"
r = re.search('(?P<foo>\d+)',str1)

if r:
    print(r.group('foo')) # fooで取得することができる
    print(r.group(1))     # もちろん1でも同様に取得可能
$ py main.py
123
123