正規表現って何?難しそう…
「正規表現」という言葉を聞いたことはあっても、「難しそう」「エンジニアだけが使うもの」と思っている方も多いかもしれません。
たしかに複雑な正規表現は難解ですが、基本的な考え方はとてもシンプルです。
正規表現とは、「文字列のパターンを表す書き方」のことです。
たとえば「3桁の数字」「@を含むメールアドレスっぽい文字列」「〇〇で始まる単語」といったパターンを、短い記号で表現できます。
正規表現を使うとどんなことができる?
具体的な例で見てみましょう。
①大量のテキストから特定の情報を取り出す
議事録や資料の中から電話番号だけを抜き出したい、メールアドレスのリストだけを集めたい、といった場面で活躍します。
手作業で探すと時間がかかる作業も、正規表現を使えば一瞬です。
②入力内容が正しい形式かチェックする
Webフォームなどで「郵便番号は数字7桁で入力してください」といったチェックをするときに使われています。
「123-4567」の形式かどうかを正規表現で確認することで、入力ミスを防げます。
③文字列を一括で置換する
「山田」という名前を全部「田中」に変えたい、特定のパターンの文字列をまとめて削除したい、といった置換作業も正規表現で効率化できます。
よく使う正規表現のパターンを見てみよう
難しい記号がたくさん出てきますが、よく使うものだけ覚えれば十分です。
数字を表す「\d」
「\d」は「数字1文字」を表します。
・\d → 0〜9のどれか1文字
・\d\d\d → 数字が3文字続くもの
・\d+ → 数字が1文字以上続くもの(+は「1回以上繰り返す」の意味)
任意の1文字を表す「.」
「.」(ドット)は「どんな文字でも1文字」を表します。
・a.c → 「abc」「axc」「a1c」など、aとcの間に何かが1文字入るもの
文字の種類を指定する「[ ]」
角括弧の中に書いた文字のどれかにマッチします。
・[aeiou] → 母音のどれか1文字
・[0-9] → 0から9の数字1文字(\dと同じ意味)
・[a-zA-Z] → アルファベット大文字・小文字のどれか1文字
繰り返しを表す「*」「+」「{n}」
・* → 0回以上の繰り返し
・+ → 1回以上の繰り返し
・{3} → ちょうど3回の繰り返し
・{3,5} → 3回以上5回以下の繰り返し
たとえば「\d{3}-\d{4}」は「数字3桁 – 数字4桁」というパターンで、郵便番号(123-4567)にマッチします。
実際にProgNaviの正規表現ツールで試してみよう
百聞は一見にしかず、実際に手を動かしてみましょう。ProgNaviの正規表現ツールを使えば、ブラウザ上でパターンを試せます。
お試し例①:数字を探す
・パターン:\d+
・テスト文字列:今日は2024年5月18日です
・結果:2024、5、18がハイライトされます
お試し例②:メールアドレスっぽい文字列を探す
・パターン:[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z]+
・テスト文字列:連絡先はtanaka@example.comまでお願いします
・結果:tanaka@example.comがハイライトされます
お試し例③:郵便番号のパターンを確認する
・パターン:\d{3}-\d{4}
・テスト文字列:郵便番号は123-4567です
・結果:123-4567がハイライトされます
難しく考えずに、まずは試してみることが上達の近道です。
正規表現を学ぶときのコツ
全部を覚えようとしない
正規表現の記号はたくさんありますが、実際によく使うのはほんの一部です。「数字は\d」「繰り返しは+」くらいを覚えておいて、あとは必要なときに調べる習慣をつけましょう。
ツールを使いながら学ぶ
正規表現はツールを使いながら動作を確認するのが一番の近道です。ProgNaviの正規表現ツールはハイライト機能があるので、どこにマッチしたかが一目でわかります。
よくある質問
Q. 正規表現はどんな場面で使われているの?
A. 検索・置換機能(VSCodeやメモ帳など)、Webフォームの入力チェック、プログラムでのデータ処理、ログファイルの解析など、さまざまな場面で使われています。エンジニアだけでなく、データを扱う事務職の方にも役立ちます。
Q. 正規表現の書き方はどこで調べられる?
A. 「正規表現 チートシート」で検索すると、よく使うパターンをまとめた一覧が見つかります。ProgNaviの正規表現ツールのページにも使い方のヒントを掲載しています。
Q. 正規表現はすべての環境で同じ書き方?
A. 基本的な部分は共通ですが、プログラミング言語やツールによって細かい違いがあります。まずは基本のパターンだけ覚えておけば大半の場面で対応できます。
まとめ
・正規表現は「文字列のパターンを表す書き方」
・数字の抽出・入力チェック・一括置換などに使える
・\d(数字)、.(任意の1文字)、+(繰り返し)などの基本記号から始めよう
・ProgNaviの正規表現ツールで実際に試せる
最初は難しく感じるかもしれませんが、使い続けるうちに自然と身についていきます。まずはツールで気軽に試してみてください。
関連ツール・記事
・正規表現ツール
・URLエンコード・デコードツール
・Base64とは何か?5分でわかる解説

コメント