0
0

More than 3 years have passed since last update.

[Python3] 正規表現で、括弧で括ったところの直後を数字に置換

Posted at

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
のような文字列の4560に変えて、
https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789
のようにしたくなりました。

いつもの調子で置換後をr"\10\2"と書いたところ、「\10\2」ではなく「\10\2」と解釈されたのかエラーが出てしまいました。そこで解決策を探すと、

(?P<name>...)
通常の丸括弧に似ていますが、このグループがマッチした部分文字列はシンボリックグループ名 name でアクセスできます。
(中略)
参照する方法: \g<quote>

ドキュメント日本語訳より引用

という書き方がありました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0