ワイルドカードと正規表現の使い方と違い 2026/1/19 COLUMN こんにちは。プロクラスの国府です。 今回は「ワイルドカードと正規表現」というテーマのブログになります。 コンピュータの世界では、ファイル検索・文字列検索・入力チェックなど、さまざまな場面で「パターン指定」が使われます。その代表的な方法が ワイルドカード と 正規表現 です。 本記事では、 ・ワイルドカードとは何か ・正規表現とは何か ・両者の違い ・どの場面でどちらを使うべきか を、初心者の方にも分かるように解説できればと思います。 ワイルドカードとは? ワイルドカードとは、特定の文字の代わりに使う簡易的な記号です。主にファイル名検索や簡単なパターン指定で使われます。 記号 意味 例 `*` (アスタリスク) 任意の文字列(0文字以上) *リンゴ → リンゴ、青リンゴ `?` (疑問符) 任意の1文字 ?リ → アリ、オリ、キリ `~` (チルダ) `*や?`などの記号自体を文字として検索したいときに使う ~?→ `?`という文字を検索 [] (角括弧) 指定した文字のいずれか1文字に一致 [佐伊]藤 → 佐藤、伊藤 [ – ] (範囲指定) 指定した範囲内の文字のいずれか1文字に一致 [a-c] → a, b, c のいずれか [! ] (否定) 指定した文字以外のいずれか1文字に一致 [!あ-お] → あ~お以外の文字 # (シャープ) 任意の1桁の数値(0~9)に一致 ## → 2桁の数字 + (プラス) 直前の文字の1回以上の繰り返し Lo+p → Lop, Loop… Lpには一致しない ワイルドカードの特徴 ・書き方がシンプル ・覚えることが少ない ・ファイル操作や検索に向いている ・複雑な条件指定はできない 正規表現とは? 正規表現(Regular Expression)は、文字列のパターンを厳密に定義できる記法です。プログラミング、検索、バリデーション(入力チェック)など幅広く使われます。 正規表現でよく使う記号一覧 記号 意味 例 `.` 任意の1文字(改行以外) `a.c` → `abc`, `a1c` `*` 直前の文字が0回以上 `ab*` → `a`, `ab`, `abb` `+` 直前の文字が1回以上 `ab+` → `ab`, `abb` `?` 直前の文字が0回または1回 | `colou?r` → `color`, `colour` `[]` いずれか1文字 `[abc]` → `a`, `b`, `c` `^` 文字列の先頭 `^abc` → `abc123` 正規表現の特徴 ・非常に表現力が高い ・細かい条件指定が可能 ・学習コストが高い ・可読性が下がりやすい ワイルドカードと正規表現の違い ワイルドカードと正規表現の違いを下記の表にまとめてみました。 項目 ワイルドカード 正規表現 難易度 低い 高い 表現力 低い 非常に高い 主な用途 ファイル検索 文字列検証・解析 記述量 少ない 多くなりがち 学習コスト ほぼ不要 ある程度必要 使い分けのポイント ワイルドカードが向いているケース ファイル名検索 単純な一致条件 コマンド操作(ls、find など) 初心者向けツール 例 bash: ls *.log 正規表現が向いているケース 入力フォームのバリデーション ログ解析 プログラミングでの文字列処理 検索条件が複雑な場合 例(PHP): preg_match(‘/^[a-z0-9_]+$/’, $username); まとめ ワイルドカード→ 簡単・直感的・ファイル操作向き 正規表現→ 強力・柔軟・プログラミング向き 最初はワイルドカードから慣れ、「もっと細かく条件を指定したい」と感じたら正規表現に挑戦するのがおすすめです。以上、「正規表現とワイルドカードの違いと使い方」でした。 関連