「正規表現って何?」「パターンが複雑すぎて手書きは無理…」そんな壁を感じたことはないでしょうか。メールアドレスの検証、ログから特定情報を抽出、Excelのデータ整理——あらゆる場面で正規表現は活躍しますが、書けるのは一部のエンジニアだけというのが長年の常識でした。
この記事では、ChatGPT・Claudeを使って正規表現(Regex)を自動生成し、業務のデータ処理を劇的に効率化する方法を解説します。プログラミング経験ゼロでも今日から使えるプロンプト例と実用テンプレートを網羅しています。

正規表現とは?AIが変えた「書けない人の壁」
正規表現(Regular Expression / Regex)とは、文字列のパターンを表す記法です。たとえば ^\d{3}-\d{4}$ と書けば「3桁の数字・ハイフン・4桁の数字」という郵便番号フォーマットを表します。
強力な反面、構文が独特で学習コストが高く、「必要なのに書けない」という状況が多くの現場で起きていました。
AIが変えたのは、この「書けない」という壁です。「電話番号(03-XXXX-XXXX形式)にマッチするRegexをください」と日本語で伝えるだけで、検証済みのパターンを一瞬で受け取れます。さらにAIは「なぜこのパターンになるか」も説明してくれるため、理解しながら使い回せます。
AIで正規表現を自動生成する具体的な手順
1. プロンプトに「何にマッチさせたいか」を具体的に書く
AIへの指示で最も重要なのは、対象文字列の具体例を含めることです。パターンの言語化だけでは曖昧さが残ります。
プロンプト例(メールアドレスの抽出):
以下の文字列からメールアドレスだけを抽出する正規表現を作成してください。 【対象文字列の例】 - 連絡先: tanaka@example.com までご連絡ください - info@company.co.jp と sales@shop.com の2件 - 無効なアドレス: @badmail、missing@ 【要件】 - Pythonの re.findall() で使える形式 - .co.jp など多段階ドメインにも対応 - サンプルで「無効なアドレス」として挙げたものはマッチさせない
出力例(ClaudeまたはChatGPT):
import re pattern = r'[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}' text = "連絡先: tanaka@example.com までご連絡ください" emails = re.findall(pattern, text) # → ['tanaka@example.com']
AIは正規表現本体だけでなく、使い方のコード例まで生成してくれます。コピペしてそのまま動かせます。
2. 生成されたRegexをAIにその場でテストさせる
Regexには「意図せずマッチしてしまう文字列(偽陽性)」が発生することがあります。AIは同じ会話内でテストも引き受けてくれます。
上で作ってもらった正規表現で、以下の文字列にマッチするかどうか確認してください: 1. tanaka@example.com → マッチしてほしい 2. @badmail → マッチしてほしくない 3. user+tag@mail.co.jp → マッチしてほしい 4. abc@.com → マッチしてほしくない
AIが「3番はマッチします、4番はマッチしません」と判定し、問題があれば修正案も提示します。専用の正規表現テストツール(regex101など)を開かずとも、チャット画面だけで検証が完結します。
3. 用途・言語に合わせてカスタマイズを依頼する
正規表現の構文は言語・ツールによって微妙に異なります。AIには「どこで使うか」を明示することで、最適な形式に合わせてくれます。
同じパターンを以下それぞれで使える形式に変換してください: - Google スプレッドシートの REGEXMATCH 関数 - JavaScript の RegExp - Pythonの re モジュール
これだけで3種類のコードが出力されます。
実務での活用例(Before/After)
【活用例1】Excelのデータクレンジング
Before: 顧客リストの電話番号列に「03-1234-5678」「0312345678」「+81-3-1234-5678」が混在。手作業で統一するのに1時間かかっていた。
After: ChatGPTに「さまざまな形式の日本の電話番号を正規化するPythonスクリプト」を依頼し、10分で自動処理できるコードを入手。1,000件のリストを30秒で統一フォーマットへ変換。
使ったプロンプト:
日本の電話番号(携帯・固定・フリーダイヤル混在)を全て 「03-XXXX-XXXX」形式に統一するPythonスクリプトを書いてください。 入力例: - "0312345678" - "03-1234-5678" - "+81-3-1234-5678" - "0120-XXX-XXX"(フリーダイヤルはそのまま)
【活用例2】フォームのバリデーション設計
Before: エンジニアに「郵便番号フォームに入力チェックを付けて」と依頼するたびに1~2日待ちが発生していた。
After: ClaudeにJavaScript用のバリデーション関数を依頼し、HTMLフォームにコピペ。エンジニアの工数ゼロで実装完了。
// Claudeが生成した郵便番号バリデーション(例) function validatePostalCode(input) { // 「123-4567」または「1234567」の両形式に対応 const pattern = /^\d{3}-?\d{4}$/; return pattern.test(input.replace(/\s/g, '')); }
【活用例3】ログ解析でエラー行だけを抽出
Before: 数万行のサーバーログから「ERROR」レベルの行を手動で確認するのに30分かかっていた。
After: ChatGPTに「[ERROR]または[CRITICAL]を含む行だけをgrepで抽出するコマンド」を作成させ、ターミナルで一発実行。1秒で完了。
# AIが生成したgrepコマンド例 grep -E '\[(ERROR|CRITICAL)\]' /var/log/app.log > errors_only.txt
Googleスプレッドシートで使えるRegex活用パターン
プログラミング環境がなくても、Googleスプレッドシートの関数でRegexを活用できます。AIに「スプレッドシート用の数式」と明示して依頼してください。
| やりたいこと | 使う関数 | AIへの依頼文 |
|---|---|---|
| 特定パターンを抽出 | REGEXEXTRACT | 「A列からカッコ内の数字だけを取り出すREGEXEXTRACT数式を作って」 |
| パターンに一致するか判定 | REGEXMATCH | 「A列がメールアドレス形式かどうかをTRUE/FALSEで返す数式」 |
| パターンを別の文字列に置換 | REGEXREPLACE | 「電話番号のハイフンを全て削除する数式」 |
うまくいかないときの対処法
生成されたRegexが意図しない文字列にもマッチする
→ プロンプトに「マッチしてほしくない例」を追加して再依頼する。「以下の文字列にはマッチしないでください」という一文が有効です。
言語・ツールによってエラーになる
→ 「Pythonのreモジュールで動くように」「JavaScriptのRegExpで動くように」と使用環境を明記する。特にバックスラッシュのエスケープルールが言語で異なります。
日本語のマッチングがおかしい
→ 「全角ひらがな・カタカナ・漢字を含む日本語文字列に対応した形式で」と依頼する。Unicodeカテゴリやコードポイント範囲の指定をAIが自動で行ってくれます。
複雑すぎてAIも迷っている場合
→ 要件を分割する。「まず数字部分だけ抽出するRegexを作成し、次にその中からXXのパターンのみを絞り込む方法を教えて」という段階的なアプローチが有効です。

本記事のまとめ
・正規表現の生成: AIに「対象の例」と「用途・使用言語」を伝えるだけで、検証済みのパターンが手に入る
・テストも同じ画面で: プロンプト内でマッチ確認を依頼すれば、外部ツール不要で精度を検証できる
・活用場面は広い: Excelのデータ整理、フォームバリデーション、ログ解析、スプレッドシート関数まで対応
・うまくいかない時はNG例を追加: 「マッチしてほしくない例」を明示すれば精度が改善する
・プログラミング知識ゼロでも実用できる: コード全体をAIに書かせれば、Regexだけでなく処理スクリプトごと入手できる
AIを使ったコード自動生成に関連する実践ガイドとして、AIでPowerShell・Bashスクリプトを自動作成する方法やAIでPythonスクレイピングを自動化する方法もあわせてご覧ください。
PR
正規表現生成に限らず、コード作成・データ処理・文書作成など幅広い業務でAIを活用するノウハウを解説。実務者目線の具体的なプロンプト例が豊富で、読んですぐ試せる構成になっています。
