⛳
正規表現の有用性 〜開発・調査・検索を効率化する武器
※本記事は 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 UserController や class 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"→ テスト用属性のボタンだけ見つけたいときに便利
使い方:
- Chrome DevTools(検証ツール)を開く
- Elements パネルで
Ctrl+F/Cmd+F -
/pattern/の形式で正規表現検索が可能
おわりに
正規表現は「ちょっと取っつきにくい」ですが、
検索・置換・抽出・検証など、開発中の「探す・整える・確認する」作業でとても役立ちます。
少しずつ覚えて、開発・調査・検証の武器としてぜひ取り入れてみてください。
よく使う正規表現チートシート(抜粋)
| パターン | 意味例 |
|---|---|
\d+ |
数字(1文字以上) |
\w+ |
英数字(1文字以上) |
^foo |
行頭が foo |
bar$ |
行末が bar |
\s* |
空白(0文字以上) |
.+ |
任意の文字列(1文字以上) |
Discussion