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をマスターするならUdemyの教材がオススメです。

>> 現役シリコンバレーエンジニアが教えるPython 3 入門 + シリコンバレー流コードスタイル 

 

Udemyは買い切りの動画学習サービスです。
一度購入してしまえば、その教材はずっと使うことができます。

 

さらに今なら30日間返金保証がついているので、
一度購入して自分の思っていたものと違った場合は費用がかかりません。

 

この教材はPythonの基礎から応用まで徹底的に解説しています。
また、現役シリコンバレーエンジニアによる本格的な解説も魅力です。

 

10000近く購入されているにも関わらず、
評価が4.4以上もあることからもその質の高さが分かります。

 

また、Pythonについて基礎から学ぶのであれば、オンラインスクールがオススメです。

 

オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、これからPythonを学ぶ人にもオススメです。

 

オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。

 

オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。

✔️オススメのプログラミングスクール ベスト3

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。

 

気になった方はぜひチェックしてみて下さい〜!

コメント

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