Pythonで正規表現(置換編)

Python
挨拶
くろやぎ
くろやぎ

こんにちは!くろやぎ(kuroyagi_info)です。

前回の「Pythonで正規表現(検索編)」に引き続き、今回はPythonで正規表現を使って、置換操作を学んでいきましょう!

  • 対象読者
    • Pythonでの正規表現の使い方がわからない方
    • 「そもそも正規表現って何?」という方はこちら
  • 内容
    • 正規表現の基本事項を理解できる(メタ文字、特殊シーケンス)
    • Pythonのreモジュールの使い方
    • 実践的な正規表現の使い方
  • 実行環境
    • Windows 10
    • Python 3.6

正規表現で文字列を置換するsub関数

sub関数の使い方は以下の通りです。

re.sub(”正規表現”, “置換する文字列”, 置換対象の文字列)

第一引数に正規表現を使った検索パターンを指定し、
第二引数に置換する文字列を、
第三引数に置換対象の文字列を渡すことで、置換操作できます。

文章でつらつら書いても分かりにくいと思うので、例を見てみましょう。

import re

 

text = “赤やぎくん 青やぎくん 白やぎくん”

replace = re.sub(‘赤|青|白’, “くろ”, text)

print (replace)

# くろやぎくん くろやぎくん くろやぎくん

“赤やぎくん 青やぎくん 白やぎくん”の中の、”赤”または”青”または”白”という文字を”くろ”という文字に置換できていますね。

改行を含む場合

置換対象の文字列に改行を含む場合は、第4引数に「flags=re.MULTILINE」を指定します。

import re

 

text = “””

赤やぎくん

青やぎくん

白やぎくん

“””

replace = re.sub(‘^(赤|青|白)’, “くろ”, text) #第4引数を指定しないとき

print (replace)

# くろやぎくん

# 青やぎくん

# 白やぎくん

 

replace = re.sub(‘^(赤|青|白)’, “くろ”, text, flags=re.MULTILINE) #第4引数を指定したとき

print (replace)

# くろやぎくん

# くろやぎくん

# くろやぎくん

後方参照

発展的な内容として、「後方参照」というものについて紹介しておきます。

import re

 

text=”””

グーとチョキ

チョキとパー

パーとグー

“””

replace = re.sub(r'(.*)と(.*)’, r’\1は\2に勝つ’, text)

print (replace)

# グーはチョキに勝つ

# チョキはパーに勝つ

# パーはグーに勝つ

sub関数の第二引数で指定している「r’\1\2に勝つ’」という部分に注目してください。

これは後方参照と呼ばれる置換の方法で、第一引数内の1つ目のグループ(.)が「\1」に格納され、2つ目のグループ(.)が「\2」に格納されています。


おわりに

Pythonの正規表現の置換について、具体例を挙げることで理解してくスタイルで学びました。
正規表現を使い倒せるようになると、作業の効率を向上できます。
正規表現はPythonに限らず、ほかの言語でも使うことができ、さらにWordやExcelでも使うことができます。

ぜひ、使いこなせるようにしておきましょう!

38
タイトルとURLをコピーしました