正規表現の有用性 〜開発・調査・検索を効率化する武器

に公開

※本記事は ChatGPT による生成コンテンツをもとに、筆者が加筆・修正を行ったものです。

正規表現(Regular Expression)は、単なる「難解な記号の羅列」ではありません。
適切に使えば、コードを書く速度・調査する力・トラブルシューティングの精度を飛躍的に向上させる強力な武器になります。

本記事では、次の3つの観点から「正規表現の有用性」を紹介します。

  • プログラミングでの活用
  • コードリーディング・調査での活用
  • フロント要素検索での活用(Chrome DevTools など)

1. プログラミングでの活用

正規表現は、文字列を扱う処理で非常に便利です。

よくあるユースケース

  • メールアドレスや電話番号のバリデーション
    例: preg_match('/^[\w\.-]+@[\w\.-]+\.[a-zA-Z]{2,}$/', $email)
  • フォーマット変換(例:日付 → ハイフン区切り)
    例: preg_replace('/(\d{4})(\d{2})(\d{2})/', '$1-$2-$3', '20250823')
  • テキスト内から特定パターンを抽出
    例: HTMLからリンクだけ抜き出すなど

ちょっとした例(PHP)

$lines = [
    'Error: File not found at /var/www/html/file.txt',
    'Error: Permission denied at /usr/local/data/db.sqlite',
];

foreach ($lines as $line) {
    if (preg_match('/at (\/.+)$/', $line, $matches)) {
        echo "Path: " . $matches[1] . "\n";
    }
}

2. コードリーディング・検索での活用

「この関数どこで使われてるの?」
「特定のクラスだけで使われている変数を知りたい」
そんなとき、正規表現を使った検索が役立ちます。

例1:クラス名だけを検索(PHP)

検索文字列: ^class\s+\w+
使い方:grep、VS Code、PHPStorm、IDEA などの「正規表現検索」を有効化して使用

これで、class UserControllerclass CreateUserService などのクラス定義だけを一覧で表示可能。

例2:メソッド呼び出し(Laravel)

検索: \$this->\w+\(
意味: $this->〇〇( の呼び出しだけを一覧にする

依存している内部メソッドやサービス呼び出しの確認に便利です。

例3:特定ディレクトリに限定して検索

grep -Er "function\s+\w+\(" ./app/Http/Controllers
  • grep -E で拡張正規表現を使い
  • function xxx( の形式を /Controllers ディレクトリ内だけで検索

巨大なコードベースでも必要な情報に素早くアクセスできます。

3. Chrome DevTools での DOM 要素検索

意外と知られていないですが、Chrome の Elements パネルでも正規表現が使えます。

例1:特定の属性を持つ要素

  • class=".*btn.*"btn を含む class を持つ要素を探す
  • data-testid=".+-button" → テスト用属性のボタンだけ見つけたいときに便利

使い方:

  1. Chrome DevTools(検証ツール)を開く
  2. Elements パネルで Ctrl+F / Cmd+F
  3. /pattern/ の形式で正規表現検索が可能

おわりに

正規表現は「ちょっと取っつきにくい」ですが、
検索・置換・抽出・検証など、開発中の「探す・整える・確認する」作業でとても役立ちます。

少しずつ覚えて、開発・調査・検証の武器としてぜひ取り入れてみてください。

よく使う正規表現チートシート(抜粋)

パターン 意味例
\d+ 数字(1文字以上)
\w+ 英数字(1文字以上)
^foo 行頭が foo
bar$ 行末が bar
\s* 空白(0文字以上)
.+ 任意の文字列(1文字以上)

Discussion