8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

正規表現を毎回調べ直すのが嫌で、Claude Codeに逆引き辞典を作ってもらった話

8
Posted at

はじめに

ログ調査やCSVのバリデーションで正規表現を使おうとするたび、「カンマ区切りの3列目が空の行ってどう書くんだっけ……」と手が止まっていました😇

ネットで「正規表現 チートシート」を検索すると、メタ文字の意味解説はたくさん出てきます。でも欲しいのは「全角文字が混入している行を見つけたい」「HTTPの5xxエラーだけ抽出したい」のような、業務の場面から逆引きできるリファレンスです。

Claude Codeに用途とツールを明示して頼んだところ、1回のプロンプトで実務特化型の逆引き辞典ができあがりました。
他のAIにも活用できそうなプロンプト例でもありますが、Claude Codeを用いた事例として記載します。


先にまとめ

  • Claude Codeに 「用途(ログ調査)× ツール(サクラエディタ/grep)」 を明示して指示すると、汎用的な解説ではなく逆引き型のリファレンスが出てくる
  • 1回のプロンプトで 7つの実務カテゴリ・約40パターン が生成された
  • ツールを明示したことで、サクラエディタ固有の注意点(改行コード、後方参照の記法差異など)も自動で含まれた
  • 生成物をベースに、業務固有のパターンを追記して「自分専用辞典」に育てる運用が効果的

汎用チートシートの物足りなさ

正規表現のまとめ記事は世の中にたくさんあります。ただ、その多くはこういう構成です。

  • . は任意の1文字
  • * は0回以上の繰り返し
  • \d は数字(全角

これはこれで正しいのですが、実際の業務では「メタ文字の意味は分かっている。でも、いま目の前にあるCSVから特定条件の行を抜き出すパターンがパッと出てこない」という状況のほうが多いはずです。

欲しいのは「メタ文字→意味」の正引きではなく、 「やりたいこと→パターン」の逆引き です。


Claude Codeへの指示設計

実際に入力したプロンプト

ログ調査において、サクラエディタやgrep検索でよく使用できる正規表現についてリストアップしてほしい。

たった1行ですが、2つのコンテキストが入っています。

要素 指示の中の該当部分 効果
用途 「ログ調査において」 汎用解説ではなく、調査で使うパターンに絞られる
ツール 「サクラエディタやgrep検索で」 ツール固有の注意点(改行コード、正規表現エンジンの差異)も出力に含まれる

「用途×ツール」を外すとどうなるか

比較のために、コンテキストを外したプロンプトも試してみました。

正規表現についてまとめてください。

こちらの出力は、メタ文字の意味一覧と基本的な使い方の解説が中心でした。間違ってはいませんが、「CSVの空カラムを見つけたい」ときにすぐ使える内容ではありません。

プロンプトの差はわずかですが、出力の方向性はまったく違います。 「何のために使うか」と「どの環境で使うか」を1文に入れるだけで、出力の実用度は大きく変わります。


生成された7カテゴリの中身

実務で特に刺さったパターンをカテゴリごとにピックアップします。

1. 日付・時刻

# yyyy/mm/dd または yyyy-mm-dd
\d{4}[/-]\d{2}[/-]\d{2}

# 日時 (yyyy/mm/dd HH:MM:SS)
\d{4}[/-]\d{2}[/-]\d{2}\s\d{2}:\d{2}:\d{2}

ログファイルからタイムスタンプ付きの行だけを抽出する場面で使います。区切り文字が / でも - でもマッチする [/-] がポイントです。

2. 数値・金額

# カンマ区切り金額 (例: 1,234,567)
\d{1,3}(,\d{3})*

# 負の金額を含む小数
^-?\d{1,3}(,\d{3})*(\.\d+)?$

売上データや請求CSVの金額カラムが正しいフォーマットかチェックするときに使います。\d{1,3}(,\d{3})* は「1〜3桁 + カンマ3桁の繰り返し」なので、1234567(カンマなし)にはマッチしません。意図的にフォーマット違反を検出したいときに便利です。

3. ID・コード

# プレフィックス付きID (例: ORD-12345)
^[A-Z]{2,4}-\d+$

# 固定長コード (8桁英数字)
^[A-Za-z0-9]{8}$

「IDカラムにフォーマット外の値が混入していないか?」というチェックで活躍します。業務に合わせてプレフィックスやケタ数を調整してください。

4. 連絡先情報

# 電話番号 (ハイフンあり)
0\d{1,4}-\d{1,4}-\d{4}

# メールアドレス (簡易)
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,}

顧客データのバリデーション用です。メールアドレスのパターンはRFC準拠ではなく簡易版ですが、「明らかにおかしいデータの検出」が目的ならこれで十分です。

5. CSVデータ調査

# 空カラムの検出 (カンマが連続)
,,

# N番目のカラムが空 (例: 3番目)
^([^,]*,){2},

# ダブルクォート囲みフィールド
"[^"]*"

個人的に一番助かったカテゴリです。^([^,]*,){2}, は「カンマ区切りで3番目が空」を検出します。{2} の部分を変えれば任意のN番目に対応できます。CSVをExcelで開く前に、サクラエディタのgrep検索で品質をざっくりチェックする使い方が便利です。

6. データ品質チェック

# 全角文字を含む行
[^\x00-\x7F]

# 全角数字
[0-9]

# 行頭・行末の不要スペース
^\s+|\s+$

# タブ区切りの列数チェック(5列 = タブ4個)
^([^\t]*\t){4}[^\t]*$

データ移行やシステム連携の前に流すチェック用です。[^\x00-\x7F] で全角混入を検出するパターンは、「半角のはずのカラムに全角スペースが紛れている」ようなケースを一発で見つけられます。

7. ログ・エラー調査

# ERROR/WARN行の抽出
(ERROR|WARN|FATAL)

# スタックトレース行
^\s+at\s

# HTTPステータスコード (4xx, 5xx)
\s(4\d{2}|5\d{2})\s

# SQL文の抽出
(SELECT|INSERT|UPDATE|DELETE)\s

障害調査の初動で使うパターンです。\s(4\d{2}|5\d{2})\s は、アクセスログからHTTP 400番台・500番台のレスポンスだけを絞り込みます。前後の \s でステータスコード以外の数字(ポート番号など)を除外しています。


サクラエディタ固有のハマりポイント

プロンプトで「サクラエディタ」を明示したことで、ツール固有の注意点も生成に含まれました。

ハマり1: 改行コードの扱い

サクラエディタで改行を検索する場合は \r\n(Windows改行)を使います。\n だけではマッチしないことがあるので注意してください。

ハマり2: 後方参照の記法

置換時のグループ参照は、バージョンや設定によって $1\1 のどちらかが使えます。動かない場合はもう一方を試してみてください。


生成後の育て方

そのままコピペして使うだけでも十分ですが、さらに活用するなら「自分専用辞典」として育てていく運用がおすすめです。

業務固有パターンの追記

生成結果はあくまで汎用的な実務パターンです。自社のIDフォーマットや、特定システムのログ形式に合わせたパターンを追記していくと、チーム内で共有できるリファレンスになります。

# 例: 自社の注文ID(PRJ + 年月 + 連番)
^PRJ\d{6}-\d{4}$

カテゴリの追加

生成された7カテゴリに加えて、自分の業務で頻出するカテゴリ(URLパターン、ファイルパス、特定のXMLタグなど)をClaude Codeに追加生成してもらうのも有効です。

先ほど作成した正規表現リファレンスに、URL・ファイルパスのカテゴリを追加してほしい。

このように会話を継続して指示すれば、既存のフォーマットに合わせた形で追記されます。


まとめ

  • 正規表現チートシートは「用途×ツール」を明示してClaude Codeに頼むと、逆引き型の実用リファレンスになる
  • 1回のプロンプトで7カテゴリ・約40パターンが生成された。毎回ネットで調べ直す時間がなくなった
  • ツール名を指示に含めることで、サクラエディタの改行コードやbregonig.dllといったツール固有の注意点もカバーされた
  • 生成結果をベースに業務固有のパターンを追記していけば、チームで使えるリファレンスに育つ

最後に、GMOコネクトではサービス開発支援や技術支援をはじめ、
幅広い支援を行っておりますので、何かありましたらお気軽にお問合せください。

お問合せ:https://gmo-connect.jp/contactus/

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?