Python: 正規表現で文字列を置換する re.sub()

Pythonで正規表現による置換処理を行う場合は、 reモジュールのsub()関数を使います。

正規表現を使わない通常の文字列置換はstrオブジェクトのreplace()メソッドを使いますが、 正規表現を使った置換の場合はreモジュールのsub()関数を使います。

ここではsub()関数の使い方について解説します。

sub()関数の書式

書式
sub(検索パターン, 置換後文字列, 検索対象文字列, count=0, flags=0)

戻り値は置換された後の文字列です。 「検索対象文字列」から「検索パターン」に一致する文字列を「置換後文字列」に置換します。 引数のcountとflagsは省略可能です。 countを省略するか「0」を指定した場合は、マッチしたすべてが置換されます。
(関連記事:正規表現での検索フラグ flags

sub()関数のサンプルコード

次のコードは、パターン「c.t」にマッチする文字列を「xxx」に置換します。

import re

p = "c.t"

s = "cat hat cut hit cup"

s_new = re.sub(p, "xxx", s)

print(s_new) # xxx hat xxx hit cup

re.sub()で改行コードを削除

次は re.sub()を使って改行コードを削除するコードです。 置換後の文字列に「""」か「''」の空文字を指定することで削除になります。

改行コードは「\r\n」「\n」のどちらにも対応できるように、 パターンを「\r?\n」とします。

import re

# パターン
p = "\r?\n"

s = "a\nbcd\r\nefg\r\nhi\njkl"

s_new = re.sub(p, "", s)

print(s_new) # abcdefghijkl
Python