Claude Codeで正規表現を作成・デバッグする方法
Claude Codeを使って複雑な正規表現を簡単に作成・テスト・デバッグする実践テクニック。具体的なプロンプト例と動くコードで解説。
正規表現の悩みをClaude Codeで解決する
正規表現は強力なツールですが、複雑なパターンになると読み書きが難しく、デバッグにも時間がかかります。Claude Codeを使えば、自然言語で要件を伝えるだけで正確な正規表現を生成し、テストコードまで一括で作成できます。
基本的な使い方に慣れていない方は、まずClaude Codeの入門ガイドをご覧ください。
基本:自然言語から正規表現を生成する
プロジェクトディレクトリで次のようにプロンプトを入力します。
> 日本の電話番号(ハイフンあり・なし両対応)にマッチする正規表現をTypeScriptで作って。テストコードも書いて。
Claude Codeが生成するコード例:
const phoneRegex = /^0[0-9]{1,4}[-]?[0-9]{1,4}[-]?[0-9]{3,4}$/;
// 携帯電話番号の厳密なパターン
const mobileRegex = /^0[789]0[-]?\d{4}[-]?\d{4}$/;
function validatePhone(input: string): boolean {
return phoneRegex.test(input) || mobileRegex.test(input);
}
// テスト
const testCases = [
{ input: "090-1234-5678", expected: true },
{ input: "09012345678", expected: true },
{ input: "03-1234-5678", expected: true },
{ input: "0312345678", expected: true },
{ input: "123-4567-8901", expected: false },
{ input: "abc-defg-hijk", expected: false },
];
testCases.forEach(({ input, expected }) => {
const result = validatePhone(input);
console.assert(
result === expected,
`Failed: ${input} => ${result}, expected ${expected}`
);
});
console.log("All tests passed!");
既存の正規表現をデバッグする
プロジェクト内の正規表現がうまく動かないとき、Claude Codeに直接聞けます。
> src/utils/validator.ts の emailRegex が[email protected]にマッチしない原因を調べて修正して
Claude Codeはファイルを読み取り、正規表現の問題箇所を特定して修正します。例えば + 記号のエスケープ漏れなど、見落としやすいバグを即座に発見できます。
実践パターン:URLパーサーの構築
Webスクレイピングやログ解析で役立つURLパーサーの例です。
interface ParsedUrl {
protocol: string;
host: string;
port?: string;
path: string;
query?: Record<string, string>;
fragment?: string;
}
function parseUrl(url: string): ParsedUrl | null {
const regex =
/^(https?):\/\/([^:/?#]+)(?::(\d+))?(\/[^?#]*)?(?:\?([^#]*))?(?:#(.*))?$/;
const match = url.match(regex);
if (!match) return null;
const queryParams: Record<string, string> = {};
if (match[5]) {
match[5].split("&").forEach((pair) => {
const [key, value] = pair.split("=");
queryParams[decodeURIComponent(key)] = decodeURIComponent(value || "");
});
}
return {
protocol: match[1],
host: match[2],
port: match[3],
path: match[4] || "/",
query: match[5] ? queryParams : undefined,
fragment: match[6],
};
}
// 使用例
const result = parseUrl("https://example.com:8080/api/users?page=1&limit=10#section");
console.log(result);
// {
// protocol: "https",
// host: "example.com",
// port: "8080",
// path: "/api/users",
// query: { page: "1", limit: "10" },
// fragment: "section"
// }
正規表現の可読性を上げるテクニック
Claude Codeに「名前付きキャプチャグループを使って」と指示すると、可読性の高い正規表現を生成します。
// 日付パーサー(名前付きキャプチャグループ使用)
const dateRegex =
/^(?<year>\d{4})[-\/](?<month>0[1-9]|1[0-2])[-\/](?<day>0[1-9]|[12]\d|3[01])$/;
function parseDate(input: string) {
const match = input.match(dateRegex);
if (!match?.groups) return null;
return {
year: parseInt(match.groups.year),
month: parseInt(match.groups.month),
day: parseInt(match.groups.day),
};
}
console.log(parseDate("2026-04-08"));
// { year: 2026, month: 4, day: 8 }
プロンプトのコツ
正規表現生成で精度を上げるには、以下の情報をプロンプトに含めましょう。効果的なプロンプトの書き方はプロンプトを改善する5つのTipsも参考になります。
- マッチさせたい文字列の具体例を複数提示する
- マッチさせたくない文字列も明示する
- 利用場面(バリデーション、抽出、置換)を伝える
- 言語やフレームワークの制約を指定する
> 以下の条件でメールアドレスのバリデーション正規表現を作って。
> - マッチすべき: [email protected], [email protected]
> - マッチしない: @example.com, user@, [email protected]
> - TypeScriptで使う。RFC 5322に完全準拠でなくてよい。
まとめ
Claude Codeを正規表現アシスタントとして活用すると、複雑なパターンの作成時間を大幅に短縮できます。自然言語で要件を伝え、テストケースも同時に生成することで、正規表現の品質と保守性が向上します。
より高度な活用法についてはClaude Code公式ドキュメントを参照してください。
無料PDF: Claude Code はじめてのチートシート
まずは無料PDFで基本コマンドと最初の使い方をまとめて確認してください。登録後はそのままテンプレート集や導入相談にも進めます。
スパムは送りません。登録情報は厳重に管理します。
Claude Codeを仕事で使える形にしませんか?
無料PDFで基礎を固めたあと、すぐ使えるテンプレート集で試し、必要なら業務自動化や導入相談まで進められます。
この記事を書いた人
Masa
現役DX室長|Claude Code でゼロから多言語AI技術メディア運営中。実務直結の自動化、AI開発相談・研修受付中。
関連書籍・参考図書
この記事のテーマに関連する書籍を楽天ブックスで探せます。
※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。
関連記事
Claude Codeで多言語記事を毎日公開するための7つのデプロイ前チェック
日本語だけ公開して終わらせないために、Claude Codeで多言語記事を毎日出す前に確認したい7つのチェックを実例つきで整理しました。
Codex AutomationsでAIに毎日のコンテンツ運用を任せる方法
Codex Automationsを使って、アクセス確認、記事改善、CTA改善、デプロイ、公開確認までを毎日の運用フローとして回す方法を解説します。
Claude Code × GCP Cloud Functions 完全ガイド|サーバーレス関数を爆速開発
GCP Cloud FunctionsをClaude Codeで効率化。HTTP/Pub/Sub/Firestoreトリガーの実装からローカルテスト・デプロイ自動化まで、Masaの実務経験をもとに実例コードで解説。