totonoe
雑学・読み物

正規表現の最初の一歩──「.」「*」「\d」だけ覚えれば検索置換が一気に楽になる

正規表現は「全部覚える」のではなく、よく使うメタ文字だけ押さえれば十分です。. \d \w \s や * + ? の意味、郵便番号・メールの簡易パターン、キャプチャと置換の $1、g/i/m フラグまで、最初の一歩をやさしく整理します。

エディタやテキストツールの「検索置換」を使っていて、ふと *\d のような記号 に出会ったことはありませんか。なんとなく避けてきたけれど、「正規表現が読めると一気に楽になる」という話だけは耳にする──そんな方は多いと思います。

正規表現って全部覚えないとダメ?」「どこから手をつければいい?」と身構えている方に向けて、最初の一歩だけを整理します。

結論を先に書きます。

正規表現は全部覚える必要はありません。よく使うのは10数個のメタ文字だけで、.(任意の1文字)、\d(数字)、*(繰り返し)あたりを押さえれば、日常の検索置換は8割こなせます。


まず「メタ文字」とは何か

正規表現とは、文字の「パターン」を書くための小さな言語 です。「abc という文字列」ではなく、「数字が3つ並んでいる箇所」「末尾が .txt のもの」のように、条件で文字を探すための書き方だと思ってください。

その条件を表す特別な記号が メタ文字 です。a5 のような普通の文字はそのまま「その文字」を意味しますが、.* は「特別な意味」を持ちます。逆に言えば、この特別な記号の意味さえ分かれば、正規表現は読めるということです。


基本メタ文字の早見表

最初に覚えるべきものだけをまとめました。これがほぼ全てです。

メタ文字意味
.任意の1文字(改行以外)a.cabc axc
\d数字1文字(0〜9)\d\d42
\w英数字とアンダースコア\w+user_01
\s空白(スペース・タブ・改行)a\sba b
*直前を0回以上ab*a ab abbb
+直前を1回以上ab+ab abbb
?直前を0回か1回colou?rcolor colour
{n,m}直前をn〜m回\d{2,4} → 2〜4桁の数字
[abc]カッコ内のいずれか1文字[aeiou] → 母音
( )グループ化(まとめる)(ab)+ababab
^行の先頭^太郎 → 行頭の「太郎」
$行の末尾です$ → 行末の「です」
|またはcat|dogcatdog
\エスケープ(特殊文字を打ち消す)\. → 文字としての .

\d \w \s を大文字にすると 否定 になります(\D は「数字以外」、\S は「空白以外」)。これも覚えておくと便利です。

「読めるかどうか」より「手を動かして試す」のが一番早いので、表を眺めたら 正規表現テスターを整える に上の例を貼り付けて、色がつく様子を見てみてください。


よく使うパターンの実例

抽象的な記号の話だけでは身につきません。現場でそのまま使えるパターンをいくつか挙げます。

郵便番号

\d{3}-\d{4}

\d{3} で数字3つ、- でハイフン、\d{4} で数字4つ。123-4567 にマッチします。

電話番号(簡易)

0\d{1,4}-\d{1,4}-\d{4}

0 で始まり、ハイフン区切りの数字。市外局番の桁数がバラバラなので {1,4} で幅を持たせています。

メールアドレス(簡易)

\w+@\w+\.\w+

\w+ で名前部分、@、ドメイン、\.(文字としてのドット)、トップレベルドメイン、という構造です。

⚠️ 注記: メールや電話の「厳密に正しい」パターンは、RFCの仕様まで踏み込むと非常に複雑になります。ここで挙げたのは 日常の検索置換で「だいたい拾えればいい」レベルの簡易版 です。本番のバリデーションには使わないでください。

これらのパターンが手元のデータで本当にマッチするかは、正規表現テスターを整える に実データを貼って確認するのが確実です。


キャプチャと置換──ここからが本番の便利さ

正規表現の真価は 「探す」だけでなく「置き換える」 ときに出ます。

( ) で囲んだ部分は キャプチャ され、置換の際に $1 $2 で呼び出せます(1番目のカッコが $1、2番目が $2)。

たとえば 2026-06-16 という日付を 2026/06/16 に変えたいとき:

  • 検索:(\d{4})-(\d{2})-(\d{2})
  • 置換:$1/$2/$3

これで 年・月・日をそのまま使い回して、区切り文字だけ差し替えることができます。1件ずつ手で直す作業が、一発で終わります。

姓 名名 姓 にひっくり返す」「電話番号からハイフンを抜く」など、順序の入れ替えや一部だけの整形 がキャプチャの得意分野です。


フラグ──同じパターンでも挙動が変わる

正規表現には フラグ という「オプション」があります。よく使うのは次の3つです。

フラグ意味効果
gglobal(全件)最初の1件で止めず、すべてにマッチ・置換する
iignore case(大小無視)Aa を区別しない
mmultiline(複数行)^ $各行の 先頭・末尾になる

特に g は重要です。これを付けないと 最初の1件しか置換されない ので、「一括置換のつもりが1個しか変わらない」というのは初心者がほぼ必ず通る道です。


つまずきやすいポイント2つ

1. 特殊文字をそのまま探したいとき

. は「任意の1文字」という特別な意味なので、文字としてのピリオドを探したいときは \ でエスケープして \. と書きます。? * + ( ) [ ] $ ^ なども同様で、そのまま探すには前に \ を付けます。

2. .* の暴走に注意

.*(任意の文字が0回以上)は便利ですが、欲張って想定外の範囲まで飲み込むことがあります。たとえば <.*><a> だけでなく <a>テキスト<b> 全体にマッチしてしまいます。「できるだけ短く」マッチさせたいときは .*? のように ? を付ける(最小マッチ)と安全です。

💡 totonoe の正規表現は ブラウザの JavaScript(ECMAScript)準拠 です。Python や PHP など他言語の正規表現とは、一部の書き方(先読み・名前付きキャプチャの記法など)が異なる場合があります。ここで紹介した基本メタ文字は、どの言語でもほぼ共通です。


自分のパターンを試す

正規表現は 「書いて、当てて、直す」を素早く回す のが上達の近道です。頭の中で「これでマッチするはず」と考えても、実データには想定外のゆらぎがあるものです。

正規表現テスターを整える にテキストを貼り、パターンを入力すると、

  • マッチした箇所が その場でハイライトされる
  • g i m フラグを チェックボックスで切り替えられる
  • 置換結果($1 などのキャプチャ参照込み)が リアルタイムでプレビューされる
  • どこにマッチしたか・何件ヒットしたかが一目で分かる

ので、「書いたパターンがなぜ当たらないのか」をその場で潰せます。送信ボタンなしのブラウザ内処理なので、メールアドレスや電話番号などの実データを貼っても外部に送られません。


関連ツールとのシナジー

「正規表現で頑張る」前に、表記ゆれや改行を整えるツールで下ごしらえしておくと、書くべきパターンがぐっとシンプルになります。


まとめ

  • 正規表現は全部覚えなくていい。よく使うメタ文字は10数個だけ
  • .(任意1文字)\d(数字)\w(英数字)\s(空白)が基本の4つ
  • 繰り返しは *(0回以上)+(1回以上)?(0/1回){n,m}(回数指定)
  • 郵便番号 \d{3}-\d{4} のような 定番パターン をいくつか持っておくと早い
  • ( ) でキャプチャ → 置換で $1 が正規表現の真の便利さ
  • フラグ g(全件)i(大小無視)m(複数行) を忘れずに
  • . などを文字として探すには \. とエスケープ.* の暴走には .*? で対処
  • totonoe は JavaScript(ECMAScript)準拠。他言語とは一部違う
  • 試すなら 正規表現テスターを整える が一番早い

正規表現は「覚える」より「手元のデータで当ててみる」もの。最初の数個を試すだけで、検索置換の世界が一段ラクになります。

KOINOBORI ECOSYSTEM

私たちが運営するサイト