PR

Pythonで正規表現を使って置換するには?

Pythonで文字を置き換えたいけど、正規表現って難しそうでよくわからないな…
安心してください!この記事を読めば、Pythonの正規表現を使った置換がスッキリわかりますよ!

プログラミングをしていると、文章の中の特定の言葉だけを別の言葉に変えたいことがありますよね。

そんな時に大活躍するのが正規表現です。

一見すると呪文のように見えますが、基本さえ押さえてしまえばとっても便利で強力なツールになります。

プログラミング初心者の方でも迷わずに使えるように、基礎からしっかりと手順を案内しますね。

この記事ではPythonで正規表現を使って置換するには?について解説していきます。

最後まで読んで、ぜひマスターしてくださいね。

Pythonの正規表現置換はreモジュールのsub関数を使おう

Pythonで正規表現を使って文字を置換する場合の結論は、標準ライブラリのreモジュールに入っているsub関数を使うことです。

これを使えば、複雑な条件での文字の置き換えがあっという間にできてしまいます。

reモジュールとかsub関数って、なんだか難しそう…
最初は名前だけ見ると戸惑うかもしれませんが、使い方の型は決まっているから大丈夫です!

具体的な手順としては、以下のようになります。

  • まずはプログラムの最初でreモジュールを読み込む
  • 探したい文字のルール(正規表現)を決める
  • 新しく置き換えたい文字を決める
  • sub関数にルールと新しい文字と対象の文章を渡す

このように、たったの4ステップで文字の置換が完了します。

たとえば、文章の中にある複数の数字をすべて同じ記号に置き換えたい時なども、たった1行のプログラムを書くだけで実現できます。

一つ一つの単語を探して置き換える手間が省けるので、プログラミングの作業効率がグンと上がりますよ。

まずは「置換するならre.sub関数を使う」ということだけ覚えておいてくださいね。

文字列のreplaceメソッドでは複雑な条件に対応できないから

Pythonには元々、文字を置き換えるためのreplaceという便利な機能が備わっています。

それなのになぜ、わざわざ正規表現のsub関数を使う必要があるのでしょうか。

その理由は、replace機能は完全に一致した文字しか置き換えられないからです。

完全に一致する文字だけじゃダメなの?
実は、実際のプログラミングでは曖昧な条件で探したいことが多いんです!

たとえば、以下のようなケースを想像してみてください。

  • 文章中の「2023年」や「2024年」など、年数の数字だけを伏せ字にしたい
  • 電話番号のハイフンが入っていても入っていなくても、同じように扱いたい
  • 大文字のAも小文字のaも区別せずに置き換えたい

こういった複雑な条件の場合、replace機能では全てに対応するプログラムを一つずつ書かなければならず、とても大変です。

しかし正規表現を使えば、「数字が4つ並んでいる場所」といったように、柔軟なルールを指定することができます。

面倒な作業を劇的に減らしてくれるため、正規表現を使った置換が必要になるというわけです。

データのお掃除やテキスト処理で絶対に必要になるから

Pythonを使ってデータ分析をしたり、Webサイトの情報を集めたりする時に、必ず直面するのが「データの汚れ」です。

集めてきた文章には、余計な空白が入っていたり、記号がバラバラだったりすることがよくあります。

これを綺麗に整える(クリーニングする)ために、正規表現での置換が最強の武器になります。

データの汚れって、手作業で直すのは無理なの?
データが何万件もあると、手作業では何日かかっても終わりません!

正規表現を使った置換ができると、以下のような処理が一瞬で終わります。

  • 文章の最初や最後にある不要な空白をすべて削除する
  • メールアドレスの形式になっていない文字をエラーとして弾く
  • HTMLのタグだけを取り除いて、中身のテキストだけを抽出する

とくにPythonはデータを扱うのが得意な言語なので、こういったテキストのお掃除作業が頻繁に発生します。

正規表現をマスターしておくことで、どんなにぐちゃぐちゃなデータでも素早く綺麗に整えることができるようになります。

プロのエンジニアを目指すなら、絶対に避けては通れない大切なスキルの一つだと言えます。

まずはreモジュールをインポートして基本の書き方を覚えよう

それでは、実際にPythonで正規表現を使って置換するための具体的な方法を見ていきましょう。

難しく考えず、まずは基本の書き方をそのまま真似してみてくださいね。

実際にプログラムを書くとなると、少し緊張するな…
大丈夫!たった2行のプログラムで動かすことができますよ!

Pythonで正規表現を使うには、最初に必ず準備が必要です。

以下の手順で進めてみましょう。

  1. プログラムの先頭に「import re」と書く
  2. 「re.sub(パターン, 置き換える文字, 対象の文章)」の形で書く

たとえば、「りんご100円、みかん200円」という文章から、数字の部分だけを「X」に置き換えたいとします。

数字を表す正規表現のパターンは「\d+」なので、これを当てはめてみます。

import re text = “りんご100円、みかん200円” result = re.sub(r”\d+”, “X”, text) print(result)

これを実行すると、「りんごX円、みかんX円」という結果が表示されます。

パターンを探して新しい文字を入れるだけという、とてもシンプルな仕組みになっているのがわかりますね。

まずはこの基本の形を何度も書いて、手に覚えさせてしまいましょう。

正規表現の置換についてよくある質問にお答えします

正規表現の置換を学び始めたばかりの人が、よくつまずくポイントや疑問に思うことをQ&A形式でまとめました。

わからないことがあれば、ここでスッキリ解決しておきましょう!

エラーが出たり、思った通りに動かなかったりして不安です…
みんなが最初につまずくポイントは同じなので、安心してくださいね!
  • 質問:パターンの前にある「r」って何ですか
  • 回答:これは「raw文字列」と呼ばれるもので、正規表現で使う特別な記号をそのまま扱うための文字です。正規表現を書く時は、必ず最初にrをつけると覚えておくとエラーになりにくいですよ。
  • 質問:大文字と小文字を区別せずに置換したいのですが
  • 回答:re.sub関数の最後に「flags=re.IGNORECASE」というオプションを追加してあげます。そうすると、「Apple」でも「apple」でも同じものとして見つけて置換してくれます。
  • 質問:置換した回数も知りたい時はどうすればいいですか
  • 回答:re.sub関数の代わりに「re.subn関数」というものを使います。これを使うと、置き換えたあとの文章と一緒に、全部で何回置き換えをしたかという数字もセットで教えてくれますよ。

プログラミングをもっと本格的に学びたいあなたへ

Pythonの正規表現を使った置換ができるようになると、プログラミングがどんどん楽しくなってきますよね。

もし「もっと本格的にプログラミングを学んでみたい!」「自分一人でアプリや便利なツールを作れるようになりたい!」と思ったら、プロの先生から直接教わるのが一番の近道です。

独学だと、わからないエラーが出た時に挫折しそう…
プログラミングスクールなら、いつでも質問できる環境があるので安心ですよ!

スクールに通えば、正規表現のような便利な技術も、わかりやすい教材と丁寧な指導でスルスルと身につけることができます。

本気でスキルアップを目指すなら、以下のオンラインプログラミングスクールが特におすすめです。

  • 未経験から本気でエンジニア転職を目指すなら
  • 分かりやすい動画カリキュラムで自分のペースで学ぶなら
  • 現役エンジニアからマンツーマンで手厚く指導を受けたいなら

プログラミングのスキルは、一生使える大切な武器になります。

わからないところで何日も悩むよりも、プロに聞いてサクッと解決できる環境を作ることで、成長のスピードは劇的に変わります。

気になった方は、ぜひ無料のカウンセリングや体験レッスンを試してみてくださいね!

DMM WEBCAMP 学習コース(プログラミングコース)
Skill Hacks
CodeCamp

まとめ:Pythonの正規表現でテキスト処理の達人になろう

この記事では、Pythonで正規表現を使って文字を置換する方法についてお伝えしてきました。

一見難しそうに見える正規表現も、reモジュールのsub関数を使えば驚くほど簡単に使いこなせることがわかっていただけたと思います。

複雑な条件での置き換えや、大量のデータのクリーニングなど、プログラミングをしていく上で正規表現は絶対に欠かせないテクニックです。

最初はパターンの書き方で戸惑うかもしれませんが、少しずつ書いて実行してを繰り返すうちに、パズルを解くような感覚で楽しくなってきますよ。

ぜひ今回紹介した基本の書き方をマスターして、テキスト処理の達人を目指してくださいね。

これからもプログラミングの学習を楽しみながら続けていきましょう!

DMM WEBCAMP 学習コース(プログラミングコース)
Skill Hacks
CodeCamp

WordPressテーマ「SIMPLE」

simple

「SIMPLE」は、シンプルなデザインと多彩な機能を兼ね備えたオリジナルWordPressテーマです。

RELATED POSTS

COMMENT FORM

メールアドレスが公開されることはありません。 が付いている欄は必須項目です