前回の「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でも使うことができます。
ぜひ、使いこなせるようにしておきましょう!