Visual Studio Code(VS Code)で大量のソースコードや設定ファイルを管理していると、「特定のパターンだけまとめて探したい」「一部が異なる複数の文字列を一括で検索したい」と思うことがあります。
VS Codeの検索ボックスはシンプルに見えますが、実は 正規表現(Regex) をサポートしており、これを使えばワイルドカードのように柔軟な検索ができます。
この記事では、VS Codeでのワイルドカード的な検索のやり方から、よく使う正規表現パターン、検索と置換を合わせた活用法まで、わかりやすく解説します。
ワイルドカード検索とは?なぜ必要なの?

ワイルドカードの基本概念
ワイルドカードとは
ワイルドカード(Wildcard) 「何でも代用できるカード」という意味で、コンピューターでは「任意の文字や文字列を表す特殊文字」のことです。
身近な例
ファイル検索での例
*.txt
→ すべてのテキストファイルphoto*.jpg
→ photoで始まるすべてのJPEGファイルreport_???.docx
→ report_の後に3文字が続くWordファイル
なぜワイルドカード検索が必要なの?
プログラム開発での活用場面
変数名の検索
user_id
、user_name
、user_email
など関連する変数をまとめて検索getData
、setData
、updateData
など似た名前の関数を一括確認
設定ファイルの管理
- 環境別の設定ファイル(
config.dev.json
、config.prod.json
) - バージョン番号付きファイル(
app_v1.2.3.js
)
デバッグとリファクタリング
- 特定のパターンのコメント除去
- 古い書き方のコードを新しい書き方に一括変更
VS Codeの検索機能の種類
3つの主要な検索方法
ファイル内検索(Ctrl + F)
- 現在開いているファイル内のみ検索
- 簡単な文字列検索から正規表現まで対応
ワークスペース全体検索(Ctrl + Shift + F)
- プロジェクト全体のファイルを横断検索
- ファイル種類の絞り込みも可能
ファイル名検索(Ctrl + P)
- ファイル名で絞り込み検索
- ファジー検索(部分一致)に対応
VS Codeでワイルドカード検索を有効にする方法
正規表現モードの有効化
ファイル内検索での設定
手順1:検索バーを開く
Ctrl + F
(Windows/Linux)またはCmd + F
(macOS)- 画面上部に検索バーが表示される
手順2:正規表現モードを有効化
- 検索バー右端の
.*
ボタンをクリック - ボタンが青くハイライトされれば有効
- これで正規表現パターンが使用可能
ワークスペース検索での設定
手順1:サイドバーの検索を開く
- サイドバーの虫眼鏡アイコンをクリック
- または
Ctrl + Shift + F
のショートカット
手順2:正規表現を有効化
- 検索ボックス右側の
.*
ボタンをクリック - 検索ボックス下部に「Use Regular Expression」と表示される
正規表現が有効になっているかの確認
視覚的な確認方法
.*
ボタンが青色になっている- 検索ボックスの枠線が少し太くなる
- ツールチップに「Use Regular Expression」と表示
その他の検索オプション
大文字小文字の区別
Aa ボタン
- 有効:
Hello
とhello
を区別する - 無効:
Hello
とhello
を同じとして扱う
単語全体の一致
Ab ボタン
- 有効:
cat
を検索してもcategory
にはマッチしない - 無効:
cat
がcategory
の一部としてもマッチする
よく使うワイルドカード的な正規表現パターン
基本的なメタ文字
ドット(.)- 任意の1文字
使用例
検索パターン: f.o
マッチする文字列: foo, fao, f9o, f@o
マッチしない文字列: fo, fooo
実際の活用場面
// 変数名のパターン検索
let id = 123; // i.
let ip = "192"; // i.
let if = true; // i.
アスタリスク(.*)- 任意の文字列
使用例
検索パターン: foo.*bar
マッチする文字列: foobar, foo123bar, foo_test_bar
マッチしない文字列: barfoo, foo
実際の活用場面
// 関数名のパターン検索
function getUserData() {} // getUser.*
function getUserProfile() {} // getUser.*
function getUserSettings() {} // getUser.*
プラス(.+)- 1文字以上の任意の文字列
使用例
検索パターン: foo.+bar
マッチする文字列: foo123bar, foo_test_bar
マッチしない文字列: foobar(間に文字がない)
文字クラスとグループ
角括弧([])- 文字クラス
基本的な使い方
検索パターン: f[ao]o
マッチする文字列: foo, fao
マッチしない文字列: feo, fio
範囲指定
検索パターン: [a-z]+
説明: 小文字のアルファベット1文字以上
検索パターン: [0-9]+
説明: 数字1文字以上
検索パターン: [A-Za-z0-9]+
説明: 英数字1文字以上
否定文字クラス([^])
使用例
検索パターン: [^0-9]+
説明: 数字以外の文字が1文字以上続く
マッチする文字列: abc, hello_world
マッチしない文字列: 123, a1b
特殊な文字クラス
数字関連
\d – 数字
検索パターン: ID\\d+
マッチする文字列: ID123, ID4567
マッチしない文字列: IDabc, ID
\D – 数字以外
検索パターン: \\D+
マッチする文字列: abc, hello_world
マッチしない文字列: 123, a1b
空白関連
\s – 空白文字
検索パターン: hello\\sworld
マッチする文字列: hello world, hello world(タブ)
\S – 空白以外
検索パターン: \\S+
説明: 空白以外の文字が続く単語を検索
単語境界
\b – 単語境界
検索パターン: \\bcat\\b
マッチする文字列: "cat"(単独の単語)
マッチしない文字列: "category"(単語の一部)
量詞(Quantifiers)
アスタリスク(*)- 0回以上の繰り返し
使用例
検索パターン: fo*
マッチする文字列: f, fo, foo, fooo
プラス(+)- 1回以上の繰り返し
使用例
検索パターン: fo+
マッチする文字列: fo, foo, fooo
マッチしない文字列: f
クエスチョン(?)- 0回または1回
使用例
検索パターン: colou?r
マッチする文字列: color, colour
波括弧({})- 具体的な回数指定
使用例
検索パターン: \\d{3}
説明: 数字ちょうど3文字
検索パターン: \\d{2,4}
説明: 数字2文字から4文字
検索パターン: \\d{3,}
説明: 数字3文字以上
実践的な検索・置換の活用例
コードのリファクタリング
関数名の一括変更
例:getUserXXXをfetchUserXXXに変更
検索パターン: getUser(\\w+)
置換パターン: fetchUser$1
変更例:
getUserData() → fetchUserData()
getUserProfile() → fetchUserProfile()
変数名の命名規則変更
例:スネークケースからキャメルケースに変更
検索パターン: user_([a-z]+)
置換パターン: user${1^}
変更例:
user_name → userName
user_email → userEmail
HTML/CSS での活用
クラス名の一括変更
HTMLでのクラス名変更
検索パターン: class="btn-(.+?)"
置換パターン: class="button-$1"
変更例:
class="btn-primary" → class="button-primary"
class="btn-secondary" → class="button-secondary"
CSSプロパティの一括更新
古いプレフィックスの削除
検索パターン: -webkit-(.+)
置換パターン: $1
変更例:
-webkit-border-radius → border-radius
-webkit-transform → transform
ログファイルの解析
特定の日時のログ抽出
日付パターンの検索
検索パターン: 2024-01-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}
説明: 2024年1月の任意の日のログ
検索パターン: ERROR.*user_id:\\s*(\\d+)
説明: エラーログからuser_idを抽出
IPアドレスの検索
IPv4アドレスパターン
検索パターン: \\b(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\b
マッチ例: 192.168.1.1, 10.0.0.1
設定ファイルの管理
JSON設定の一括更新
環境変数の置換
検索パターン: "apiUrl":\\s*"http://localhost:(\\d+)"
置換パターン: "apiUrl": "https://api.example.com"
変更例:
"apiUrl": "http://localhost:3000" → "apiUrl": "https://api.example.com"
コメントの一括削除
JavaScriptの単行コメント削除
検索パターン: \\s*//.*$
置換パターン: (空文字)
変更例:
let x = 5; // この変数は重要 → let x = 5;
ファイル名・フォルダでのワイルドカード

Globパターンの基本
files to includeでの絞り込み
基本的なGlobパターン
*.js # すべてのJavaScriptファイル
*.{js,ts} # JavaScriptとTypeScriptファイル
src/**/*.py # srcフォルダ以下のすべてのPythonファイル
test/*.spec.* # testフォルダ内のspecファイル
files to excludeでの除外
除外パターンの例
node_modules/** # node_modulesフォルダを除外
*.min.js # 圧縮されたJSファイルを除外
dist/** # distフォルダを除外
**/*.log # すべてのログファイルを除外
高度なGlobパターン
ディレクトリ階層の指定
ワイルドカードの種類
* # 任意のファイル名(ただし/は含まない)
** # 任意の階層のディレクトリ
? # 任意の1文字
[abc] # a, b, cのいずれか
{a,b} # aまたはb
実用例
src/**/components/*.vue # srcフォルダ内のcomponentsフォルダのVueファイル
**/*.{test,spec}.{js,ts} # テストファイルのみ
pages/[0-9]*.html # pages内の数字で始まるHTMLファイル
assets/{images,icons}/*.{png,jpg,svg} # 画像ファイルのみ
検索性能の最適化
効率的な検索のコツ
検索範囲の限定
必要な場所だけ検索
- プロジェクト全体ではなく特定のフォルダに限定
- ファイル種類を絞り込む
- 不要なフォルダ(node_modules、.git等)を除外
正規表現の最適化
効率的なパターンの書き方
// 非効率:.*test.*
// 効率的:test
// 非効率:.*\\.js$
// 効率的:\\.js$
大きなプロジェクトでの注意点
メモリ使用量の管理
対策方法
- 一度に検索するファイル数を制限
- 正規表現を簡潔に保つ
- 不要な検索履歴をクリア
検索結果の管理
結果の整理
- 関連する検索結果をグループ化
- 不要な結果をフィルタリング
- 検索結果をファイルに保存
トラブルシューティング
よくある問題と解決法
正規表現が動作しない
原因と対策
- 正規表現モードが無効
.*
ボタンが青くなっているか確認
- エスケープが必要な文字
.
→\\.
*
→\\*
+
→\\+
- 文字エンコーディングの問題
- ファイルのエンコーディングを確認
- UTF-8で保存し直す
検索結果が多すぎる
絞り込み方法
// より具体的なパターンを使用
悪い例: .*test.*
良い例: function\\s+test\\w*
// 単語境界を活用
悪い例: test
良い例: \\btest\\b
特殊文字が検索できない
エスケープが必要な文字一覧
. ^ $ * + ? { } [ ] \ | ( )
正しいエスケープ例
検索したい文字: file.txt
正規表現: file\\.txt
検索したい文字: $variable
正規表現: \\$variable
便利なショートカットとコツ

キーボードショートカット
基本的なショートカット
Windows/Linux
Ctrl + F
: ファイル内検索Ctrl + H
: ファイル内検索・置換Ctrl + Shift + F
: ワークスペース検索Ctrl + Shift + H
: ワークスペース検索・置換
macOS
Cmd + F
: ファイル内検索Cmd + Option + F
: ファイル内検索・置換Cmd + Shift + F
: ワークスペース検索Cmd + Shift + H
: ワークスペース検索・置換
検索結果のナビゲーション
結果間の移動
F3
またはEnter
: 次の結果Shift + F3
: 前の結果Escape
: 検索を終了
検索履歴の活用
検索履歴へのアクセス
履歴の利用方法
- 検索ボックスをクリック
- 上下矢印キーで過去の検索履歴を選択
- よく使うパターンを素早く再利用
検索パターンの保存
スニペット的な活用
- よく使う正規表現をメモ帳に保存
- プロジェクト固有のパターンをREADMEに記載
- チーム内で検索パターンを共有
まとめ
VS Codeでワイルドカード的な検索を行うには、正規表現機能を活用するのが最も効果的です。
基本的な使い方
- 正規表現モードを有効にする(
.*
ボタンをクリック) - 基本パターン:
.
(任意の1文字)、.*
(任意の文字列) - 文字クラス:
[abc]
、[0-9]
、\\d
、\\s
などを活用
実践的な活用
- コードのリファクタリングで関数名や変数名を一括変更
- ログファイルから特定パターンの情報を抽出
- 設定ファイルの環境間での差分確認
ファイル検索での絞り込み
- Globパターンで対象ファイルを限定(
*.js
、src/**/*.py
) - 除外パターンで不要なファイルをスキップ
効率化のポイント
- 適切な検索範囲の設定
- シンプルで効率的な正規表現の使用
- キーボードショートカットの活用
コメント