正規表現とは?

正規表現(regex)とは、検索パターンを定義する文字のシーケンスです。もともとは形式言語理論のために開発されましたが、現在ではほぼすべてのプログラミング言語やテキスト処理ツールで、stringのマッチング・検索・操作に広く使われています。[a-z]+@[a-z]+\.com のようなパターンは、シンプルなメールアドレスの構造を表しています。つまり、文字列、@ 記号、さらに文字列、ドット、そしてリテラルstring「com」という構成です。

検索用途にとどまらず、正規表現はデータ生成の設計図としても活用できます。マッチング処理を逆転させることで、regexエンジンは指定されたパターンに適合するランダムなstringを生成できます。これは、ソフトウェアテスト、プロトタイピング、そして実際のユーザー情報を使わずにリアルなモックデータでデータベースを埋める際に特に役立ちます。

ツールの説明

このツールは、入力した正規表現にマッチするランダムなstringを生成します。regexパターンを入力するか、組み込みプリセットから選択するだけで、最大1,000件のマッチする値を即座に生成できます。文字クラス、量指定子、グループ、選択、後方参照など、標準的なregex構文をすべてサポートしています。出力結果は、テストフィクスチャ、シードデータ、またはバリデーションスクリプトへの入力として直接利用できます。

機能

  • 組み込みプリセット:メール、IPv4、UUID、米国電話番号、日付、HEXカラー、ナンバープレート、MACアドレスなど、よく使われるフォーマットに対応
  • カスタムregex入力:JavaScript正規表現の完全な構文に対応
  • 生成件数の調整:1回の実行で1〜1,000件の値を生成可能
  • 最大繰り返し数の制御:上限なしの量指定子(+*{n,})の展開回数を制限し、過度に長いstringの生成を防止
  • 重複排除モード:出力の重複を除去し、パターンのエントロピーが不足して十分な数のユニークな値を生成できない場合は警告を表示

ユースケース

  • ソフトウェアテスト:実際のユーザー情報を使わずに、自動テストスイートのテストフィクスチャやシードデータとして使える、有効なメールアドレス・UUID・IPアドレスを数百件生成できます。
  • データベースのシーディング:カラムの制約やバリデーションルールに準拠した、リアルなモックデータを開発環境やステージング環境のデータベースに素早く投入できます。
  • 正規表現の学習:パターンを記述してそれが生成するstringをすぐに確認することで、量指定子・文字クラス・グループの動作を直感的に理解できます。

オプションの説明

オプション 説明
プリセット 一般的なデータフォーマット向けの組み込みパターンを選択するか、「カスタム」を選んで独自のregexを記述します。プリセットを選択すると、regexパターンフィールドに自動的に入力されます。
regexパターン データ生成に使用する正規表現です。文字クラス([a-z])、量指定子({3,8}+*)、グループと選択((com|net|org))、特殊token(\d\w)をサポートしています。
件数 生成するstringの数を1〜1,000の範囲で指定します。
最大繰り返し数 上限なしの量指定子の展開を制限します。たとえば、最大繰り返し数を10に設定すると、[a-z]+ パターンは最大10文字のstringを生成します。範囲:1〜100。
ユニークな値のみ 有効にすると、出力に重複するstringが含まれないようにします。パターンが十分なユニークな値を生成できない場合は、実際に生成された件数とともに警告が表示されます。

ヒント

  • まずプリセットを選択して変更することで、regexパターンが生成データにどう反映されるかを学べます。
  • 固定長の出力が必要な場合は、{5,10} のような範囲指定ではなく、{8} のような厳密な量指定子を使用してください。
  • +* を使用する際は、最大繰り返し数を小さくすることで、生成されるstringを短く読みやすく保てます。
  • 繰り返しを許容しない識別子やキーを生成する場合はユニークモードを有効にしてください。ただし、上限に達しないよう、十分なバリエーションを持つパターンを使用してください。

よくある質問

先読みや後読みは使えますか? このジェネレーターはrandexp.jsライブラリをベースにしており、JavaScriptのregex機能のほとんどをサポートしています。ただし、先読みと後読みは文字の内容を定義しないため、生成には対応していません。

要求した件数より少ない結果しか得られなかったのはなぜですか? 「ユニークな値のみ」が有効な場合、パターンの組み合わせが不足していて、要求した数のユニークなstringを生成できないことがあります。文字クラスを広げるか、量指定子の範囲を増やしてみてください。

出力は本当にランダムですか? 出力は疑似ランダムです。実行するたびに異なる結果が生成されますが、暗号学的に安全なランダム性ではありません。パスワードやセキュリティtoken の生成にはこのツールを使用しないでください。