Pythonで複数の置換に正規表現を使用する

Pythonで複数の置換に正規表現を使用する

Pythonで正規表現を使用してさまざまな種類の置換を実行できますか? 「Hello、this is me」という文字列のように、「hello」を「hi」に、「this」を「its」に変更したいと思います。一行でできますか?それとも正規表現で逆参照を使用できますか?

ベストアンサー1

いいえ、実際にはそうではありません。呼び出してre.sub()文字列を引数として提供する必要があるからです。見苦しいネストされた呼び出しを受け取ります。代わりに、str.replace()文字列自体のメソッドとして機能し、新しい文字列を返すので、呼び出しを関連付けることができます。

s='hello, this is me'
s=s.replace("hello", "hi").replace("this", "it's")

ただし、代替項目のリストがある場合は、以下を使用してこれを繰り返すことができますre.sub()

import re
s='hello, this is me'
replacements=[("hello", "hi"), ("this", "it's")]
for pat,repl in replacements:
    s = re.sub(pat, repl, s)

いいえ、正規表現自体は複数の置換に対して実際には機能しません。

おすすめ記事