Python 3.7.3 で動作確認
import re
url = "https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789"
re.sub(r"(?P<one>https://www\.example\.com/aaa/bbb/ccc\?x=123&y=)\d+(?P<two>&z=789)", r"\g<one>0\g<two>", url)
# "https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789"
https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789
のような文字列の456
を0
に変えて、
https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789
のようにしたくなりました。
いつもの調子で置換後をr"\10\2"
と書いたところ、「\1
と0
と\2
」ではなく「\10
と\2
」と解釈されたのかエラーが出てしまいました。そこで解決策を探すと、
(?P<name>...)
通常の丸括弧に似ていますが、このグループがマッチした部分文字列はシンボリックグループ名 name でアクセスできます。
(中略)
参照する方法:\g<quote>
ドキュメント日本語訳より引用
という書き方がありました。