サンプルから正規表現を生成
注文番号、請求書番号、日付などの正規表現を手書きするのは手間がかかり、間違えやすい作業です。認識したい形式の例文字列を1つ貼り付けると、このツールが左から右へ読み取り、数字・大文字・小文字の各連なりを適切な長さの文字クラスに変換し、句読点や記号はリテラル文字として残します。出発点となるアンカー付きのパターンが得られるので、あとは手作業で調整できます。
仕組み
-
1
サンプルを入力する
認識したい形式を表す例文字列を1つ入力または貼り付けます。たとえば `Order #12345 placed on 2026-04-16` のように。
-
2
パターンを生成する
ツールはサンプルを1文字ずつ走査し、同じ種類の文字の連なりを、その長さを持つ文字クラスに置き換えます。
-
3
内訳を読む
パターンの下にある構成要素の一覧が各部分を説明するので、どの部分が数字・文字・リテラルテキストを認識したのかがわかります。
-
4
コピーして調整する
このパターンを出発点として使います。固定された長さや文字クラスを手作業で調整し、実際のデータの全範囲に合わせてください。
パターンの組み立て方
ツールはサンプルを左から右へ読み取ります。同じ種類の文字の連なりに出会うたびに、その連なりの長さに合わせた文字クラスを出力します。
- 数字の連なりは
\d{n}になります。nは数字の個数です - 大文字
A-Zの連なりは[A-Z]{n}になります - 小文字
a-zの連なりは[a-z]{n}になります - 単一の空白は
\s、複数の空白は\s{n}になります - それ以外のもの(句読点、記号、アクセント付きや非ラテン文字)は、エスケープされたリテラル文字として残ります
完成したパターンは ^ と $ で囲まれ、一部分ではなく文字列全体を先頭から末尾まで認識します。
例
例文字列 Order #12345 placed on 2026-04-16 に対して、ツールは次を生成します。
/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/
Order は大文字1つに続く小文字4つ、12345 は \d{5}、日付 2026-04-16 は \d{4}\-\d{2}\-\d{2} になります。
できること・できないこと
- 長さは固定です。
12345は\d{5}になり、「1つ以上」ではなくちょうど5桁の数字を認識します。データで桁数が変わる場合は、{5}を手作業で+や{3,8}のような範囲に変えてください。 - 1つのサンプルから動作します。 与えた1つの文字列の構造を反映するので、複数の例からひとりでに一般化することはできません。最も代表的な文字列を与えてください。
- 文字として数えられるのは
A-Zとa-zだけです。 アクセント付きや非ラテン文字はリテラルとして残ります。より広い集合を認識させたい場合は、\wや\p{L}のようなクラスに置き換えてください。 - 正規表現ですべてを表現できるわけではありません。 括弧の対応づけのようなものは、いくつ例を与えても、どの正規表現の範囲も超えています。入れ子構造にはパターンではなくパーサーが必要です。
良い進め方
- 明確で代表的な1つのサンプルからパターンを生成します。
- 長さが変わる箇所で固定の長さを緩めます(
{5}を+や{3,8}に)。 - より大きな実データの集合とともに、パターンを正規表現テスターに貼り付けます。
- 認識すべきものすべてを認識し、認識すべきでないものを一切認識しなくなるまで調整します。
よくある質問
1つです。生成器は1つの例文字列を読み取り、その構造を反映します。あなたの形式を最もよく表す文字列を選び、そのほかのケースはパターンを手作業で広げてください。
ツールはサンプル内の正確な文字数を数えるため、5桁の数字は \d{5} になります。実データで桁数が変わる場合は、{5} を +、*、または {3,8} のような範囲に置き換えてください。
アンカーによって、パターンは文字列全体を先頭から末尾まで認識します。より長いテキストの中でパターンを探したい場合は、これらを外してください。
文字として認識するのは A-Z と a-z です。アクセント付き文字、キリル文字、CJK を含むそのほかの文字はリテラルとして残ります。より多くを認識させたい場合は、\w や \p{L} のようなクラスに手作業で置き換えてください。
PCRE、JavaScript、Python、そしてほとんどのエンジンでそのまま動く標準の構文(\d、[A-Z]、{n})です。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
JavaScript圧縮ツール
変数名のリネーム、空白の削除、デッドコードの除去、定数畳み込みでJavaScriptを圧縮し、より小さなバンドルを作成します。
EditorConfig ジェネレーター
インデント、改行コード、文字コードのルールから .editorconfig を作成し、リポジトリで使っている言語ごとに正しいセクションを追加します。Python、Go、YAML、Makefile などに対応。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
このツールは他の言語でも利用できます
- مولّد Regex من عيّنة [AR]
- Générateur de Regex à partir d'un exemple [FR]
- 샘플로 정규식 생성 [KO]
- Generator Regex dari Contoh [ID]
- Regex-Generator aus Beispiel [DE]
- Generator Regex z przykładu [PL]
- Regex-generator uit voorbeeld [NL]
- Regex-generator från exempel [SV]
- ตัวสร้าง Regex จากตัวอย่าง [TH]
- Trình tạo Regex từ mẫu [VI]
- Generador de Regex a partir de una muestra [ES]
- Gerador de Regex a partir de um exemplo [PT]
- Örnekten Regex Oluşturucu [TR]
- 从示例生成正则 [ZH]
- Regex Generator from Sample [EN]
- Generatore di Regex da un esempio [IT]
- Генератор Regex из примера [RU]