Pythonと正規表現で文字列置換をする方法

Pythonで正規表現を使って文字列置換を行う方法(コード付き)Python
ゆうすけ
ゆうすけ

「おとな」→「大人」みたいに、
テキスト中の文字列を一気に変換したいです。

資格マフィア
資格マフィア

Pythonと「正規表現」を使えば、
文字列を簡単に自動変換することができるぞ。


✔️ 本記事のテーマ

Pythonと正規表現で文字列置換をする(コード付き)


✔️ 読者さんへの前置きメッセージ


結論から言うと…

re.sub(正規表現, 置換後文字列, 対象の文字列)


でPythonで正規表現を使った文字列置換が行えます。

 

本記事は「pythonと正規表現を使ったプログラミング」について書いています。

 

この記事を読むことで
「正規表現の使い方 や Pythonで正規表現を使う方法」をイメージできるようになります。

 

正規表現はプログラミングの世界でよく使われる便利な手法です。

 

Pythonからこの正規表現を使うことで、
文字列置換(特定の文字列を別の文字列に置き換えること)が簡単にできます。

 

文字列置換をプログラムで実現すれば、面倒な作業を自動化することができるでしょう。

 

それでは、その方法を詳しく解説していきましょう。

 

正規表現とは?

正規表現とは?

正規表現とは一言で言うと…

様々な文字列を一つの文字列で表現する表記法です。

 

正規表現ではメタ文字と言われる、
以下の特殊記号を使うことで、様々な文字列を表現することが可能です。

. ^ $ [ ] * + ? | ( )

ただし、正規表現は奥が深い世界で、全て解説しようとすると、この記事だけでは足りません。
(また、最初から全てを理解しようとすると、確実に挫折します)

 

そこで、便利でよく使うものを、実際の例を使って紹介します。


例えば、

an
again
action
afternoon

これらの文字列を正規表現で表記すると以下のように表現できます。

a.*n

これは「.*」が「任意の文字列の任意回数繰り返し」表す表記だからです。

 

そのため、「aから始まりnで終わる単語」であれば、
aからnの間の文字列がなんであれ対象の文字列となります。

 

これだけでは少し、理解が難しいかもしれません。

 

そこで、どうやってこの正規表現を使うかを実際の使用例とともに解説します。

 

正規表現を使って文字列置換を行う

正規表現を使って文字列置換を行う

正規表現を使うことでどんな良いことがあるのでしょうか?

 

正規表現は文字列を置換するときに威力を発揮します。

例えば、以下のようなテキストがあったとしましょう。

りんごは英語でaplleと言います。
青リンゴはgreen apeleです。
他にも、有名なIT企業もaapleです。

この文章は、「apple」のスペルを間違えています。

 

この間違いを直すのに、正規表現が使えます。

 

プログラムで「a.*e」を「apple」に変換するように指定することで、
簡単に変換することができます。

 

「a.*e」は「aから始まりeで終わる単語」は全て対象になるので、
「aplle」「apele」「aaple」も対象になります。

 

このようにして、文字列置換をする中で、正規表現は便利に使うことができます。

 

では、次から、Pythonのプログラムの中で文字列置換を行う方法を解説します。

 

Pythonで正規表現を使って文字列置換を行う方法(コード付き)

Pythonで正規表現を使って文字列置換を行う方法(コード付き)

Pythonでは、以下のように書くことで、
対象のテキストの文字列を置換することができます。

import re


beforte_text = '''
    りんごは英語でaplleと言います。
    青リンゴはgreen apeleです。
    他にも、有名なIT企業もaapleです。
    '''

after_text = re.sub('a.*e', 'apple', beforte_text)

print(after_text)

 

順番に、解説していきましょう。

ライブラリのインポート

import re

 

正規表現を使って文字列置換を行うには、reライブラリをインポートします。

 

reライブラリはPythonの標準ライブラリです。

 

プログラムの上文でインポートすることで、
プログラム中でreライブラリの関数を使うことができるようになります。

re.sub関数を使用する

after_text = re.sub('a.*e', 'apple', beforte_text)

 

正規表現を使って文字列置換を行うには、re.sub関数を使用します。

 

re.sub関数は以下の形式で使用します。

re.sub(正規表現, 置換後文字列, 対象の文字列)

 

また、この関数は置換後の文字列をString型で返すので、
変数に代入するなり、print関数に渡すなどして結果を使いましょう。

 

今回の記事では、after_textという変数に代入しています。

 

実行結果

実行結果

このプログラムを実行してみましょう。

$ python test_resub.py 

    りんごは英語でappleと言います。
    青リンゴはgreen appleです。
    他にも、有名なIT企業もappleです。

 

このようにスペルミスをしていた「aplle」「apele」「aaple」が全て「apple」に変換されて出力されました。

 

今回では、3単語でしたが、これが100単語であっても変換することができます。

 

このように、Pythonと正規表現を活用することで、自動的に文字列置換を行うことができます。

 

Pythonについてもっとスキルを身につけるなら

Pythonについてもっとスキルを身につけるなら

今回はPythonから正規表現を使う方法について解説しました。

 

Pythonをマスターすることで正規表現以外にも多くのことをプログラムで実現できます。

 

Pythonをマスターすると様々なことがプログラムでできるようになります。

Pythonを深く網羅的に学ぶためには以下の書籍がオススメです。

 

この書籍はPythonについてかなり深く、そして丁寧に書かれています。

Python の基本文法だけでなく、

いかにして Python の持つ力を最大限引き出せるかという視点で書かれています。

 

Python 初心者はもちろん、すでに Python を使える方にもオススメの一冊です。

エンジニアとしての自身の価値をチェックする(完全無料)

エンジニアとして、

自分の価値がどれくらいのものかご存知でしょうか?

 

エンジニアとしてIT業界に身を置いていると

今の会社でずっと働くのか、フリーランスとして独立するのか …

と様々な選択肢があります。

 

どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも

自身の価値を知っておくことはとても重要です。

 

TechClips ME では、

職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。

▼▼▼▼▼

▲▲▲▲▲

しかもTechClips MEでは想定年収を企業から提示してくれるので、

自身の価値を数字で分かりやすくたしかめることができます。

 

登録はもちろん完全無料なので、一度登録してみると良いかもしれません。

 

コメント

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