わたしは匿名でAIに小さな事業を任せる実験をしていて、公開前に必ず「身バレ要素・機密情報が本文や画像に残っていないか」を機械で走査しています。
その走査スクリプトの中核は正規表現です。ここでは、実際に使っているパターンのうち、汎用性が高く他の用途にも転用しやすいものを抜き出してまとめます。急いでいる方は、最後の一覧表からコピーしてください。
なぜ正規表現で検出するのか
目視でのチェックには限界があります。自分の書いた文章は「見慣れすぎて」いて、誤りやすい箇所ほど目が滑ります。機械的なパターン照合は、見慣れているかどうかに関係なく同じ精度で動きます。
メールアドレスを検出する正規表現
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
一般的なメールアドレスの形式に広く一致します。誤検出(メールアドレスではない文字列を拾ってしまう)はある程度許容し、見逃しをゼロに近づける方を優先する設計です。
郵便番号を検出する正規表現(日本)
\d{3}-\d{4}
「123-4567」のようなハイフン区切りの形式に一致します。フォームの入力検証や、文書内の郵便番号の抽出に使えます。
電話番号を検出する正規表現(国内・ハイフンあり)
0\d{1,4}-\d{1,4}-\d{4}
市外局番の桁数がまちまちなため、厳密な検証には向きませんが、「電話番号らしき文字列がどこかに残っていないか」を洗い出す用途には十分です。
APIキー・トークンを検出する正規表現
[A-Za-z0-9_-]{32,}
32文字以上の英数字・アンダースコア・ハイフンの連続は、APIキーやトークンである可能性が高い文字列です。誤検出も多いパターンですが、「公開前に人間が二重チェックする対象を絞り込む」用途では十分に機能します。
ユーザー名を含むWindowsのパスを検出する正規表現
C:\\Users\\[^\\]+\\
スクリーンショットやログファイルに、実在するWindowsユーザー名を含むパスが写り込むことがあります。パスの形式そのものを検出することで、中身の文字列に依存せずに検出できます。
実際の運用での使い方
これらのパターンは、次のような流れで使っています。
1. 公開予定のフォルダ・ファイルを丸ごと走査する
2. 一致した箇所を、ファイル名と行番号つきで一覧表示する
3. 「誤検出かどうか」の判断は人間が行う(機械は候補を絞るだけ)
正規表現だけで完結させようとしないことが重要だと考えています。誤検出・見逃しのどちらも一定数は避けられないため、「機械が候補を絞り、人間が最終判断する」という役割分担にしています。
この走査を通した後、さらに別のAIに文章を読ませて二重チェックしています。その構成はClaude Codeをサブエージェントで役割分担する|公開前チェックを別AIに任せた構成と実測値に書きました。
画像の中身は正規表現では検出できない
念のため書いておくと、上記のパターンはすべてテキストに対する検出です。画像の中に写り込んだ文字(スクリーンショット内のメールアドレスなど)は、この方法では検出できません。実際にこの弱点が原因で、機械のチェックをすり抜けた事故が過去に1件あります。画像は必ず目視での確認を別途行っています。
まとめ:コピペ用パターン一覧
| パターン | 用途 |
|---|---|
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,} |
メールアドレスの検出 |
\d{3}-\d{4} |
郵便番号の検出・入力検証 |
0\d{1,4}-\d{1,4}-\d{4} |
電話番号らしき文字列の検出 |
[A-Za-z0-9_-]{32,} |
APIキー・トークンらしき文字列の検出 |
C:\\Users\\[^\\]+\\ |
Windowsユーザー名を含むパスの検出 |
いずれもコピーしてそのまま使えます。用途に合わせて調整してください。
関連する記録
- Claude Codeをサブエージェントで役割分担する|公開前チェックを別AIに任せた構成と実測値
- WordPressのセキュリティ強化をAIに丸投げしてみた話|見つかった穴、止まっていた自動投稿
- GASのWebアプリを「特定の人だけ」に公開できなかった理由
AIエージェントに実務を任せる構成と失敗の記録は「AIエージェント運用ガイド」に目的別にまとめています。


コメント