Python入門|re.sub を使用して正規表現で「行頭」「行末」を置換する
- 公開日:2018/07/02
- 更新日:2019/01/30
- 投稿者:n bit
Pythonで正規表現を使った文字列の置換を行うときにはre.subメソッドを利用します。今回はre.subメソッドを使用して、正規表現で「行頭」や「行末」を指定した文字列の置き換え方法を解説します。
この記事は約 分で読めます。(文字)
re.sub を使用して正規表現で「行頭」「行末」を置換する
Pythonで正規表現を使った文字列の置換を行うときには『re.sub』メソッドを利用します。『re.sub』メソッドの指定方法は以下の通りです。
- 置換された文字列 = re.sub(検索する正規表現, 置換え文字列, 置換対象の文字列)
必要に応じて置換え回数を指定する『count』や、置換え時の動作を変更する『flags』などを利用します。
それでは実際に『re.sub』メソッドと、正規表現を利用して森鴎外の『知恵袋心頭語』内の1文の「行頭」や「行末」を置き換えてみましょう。
Note
森鴎外の『知恵袋心頭語』内の1文
『人に言うべき事は、最後まできちんと言うがよい。全部は言いたくないことだったら、むしろ初めから黙っていよ。』
re.sub を使用して正規表現で「行頭」を置換する
最初に『re.sub』メソッドを利用するために『re』モジュールをインポートします。
import re
文字列の先頭を指定する正規表現は『^』です。「キャレット」と読みます。『re.sub』メソッドの第1引数に『^』を指定して文字列を置き換えてみましょう。
import re
text = '''人に言うべき事は、最後まできちんと言うが良い。
全部は言いたくないことだったら、
むしろ初めから黙っていいよ。'''
text_new = re.sub('^', '「', text)
print(text_new)
出力結果
「人に言うべき事は、最後まできちんと言うが良い。
全部は言いたくないことだったら、
むしろ初めから黙っていいよ。
文字列の先頭に『「』が置き換えられたことが確認できます。
しかし、今回置き換えたいのは行頭ですので理想とする出力結果は2行目と3行目の頭にも『「』がついている状態ですよね。
『^』は文字列の先頭にしかマッチしないため『re.sub』メソッドの検索時の動作を変更する必要があります。文字列の先頭だけではなく各行頭も全て検索対象にしたい場合は『flags』に『re.MULTILINE』を指定します。
import re
text = '''人に言うべき事は、最後まできちんと言うが良い。
全部は言いたくないことだったら、
むしろ初めから黙っていいよ。'''
text_new = re.sub('^', '「', text, flags=re.MULTILINE)
print(text_new)
出力結果
「人に言うべき事は、最後まできちんと言うが良い。
「全部は言いたくないことだったら、
「むしろ初めから黙っていいよ。
これで理想としていた各行頭に『「』が付けられていることが確認できます。
re.sub を使用して正規表現で「行末」を置換する
次は『re.sub』メソッドと正規表現を使って行末を置き換えてみましょう。文末を指定する正規表現は『$』です。こちらも文章の最後だけにマッチしますので各行末を指定するためには『flags』に『re.MULTILINE』を指定しておきます。
import re
text = '''人に言うべき事は、最後まできちんと言うが良い。
全部は言いたくないことだったら、
むしろ初めから黙っていいよ。'''
text_new = re.sub('$', '」', text, flags=re.MULTILINE)
print(text_new)
出力結果
人に言うべき事は、最後まできちんと言うが良い。」
全部は言いたくないことだったら、」
むしろ初めから黙っていいよ。」
これで各行末に『」』が置き換えられていることが確認できます。
今日のdot
文字列の先頭を指定する正規表現は『^』、文末を指定する正規表現は『$』です。
それぞれの正規表現を利用して『re.sub』メソッドで文字列を置換えます。ポイントは各行の「行頭」「行末」に対応できるように『flags』に『re.MULTILINE』を指定しておくことです。
import re
text = '''人に言うべき事は、最後まできちんと言うが良い。
全部は言いたくないことだったら、
むしろ初めから黙っていいよ。'''
text_new = re.sub('^', '「', text, flags=re.MULTILINE)
text_new = re.sub('$', '」', text_new, flags=re.MULTILINE)
print(text_new)
出力結果
「人に言うべき事は、最後まできちんと言うが良い。」
「全部は言いたくないことだったら、」
「むしろ初めから黙っていいよ。」
【フリーランス向けの完全無料Pythonプログラミング講座】
dot blogではこの記事以外にも完全無料でフリーランス向けのPythonプログラミング講座を公開中です。フリーランスとして活躍し稼ぐための強力な武器となりますよ。
Python入門講座【無料のプログラミング学習講座】
最近特に注目度が高くなってきているプログラミング言語Python。転職、フリーランス、独立・起業を検討中、日々の業務が忙しい社会人等は今こそ身に付けておきたいスキルの1つ。初心者向けにやさしいプログラミング学習内容のPython入門講座を無料で公開。