メール構文、URL、IPv4、UUID、日付、数値に関する実用的な正規表現の例を、各パターンが実際に何をチェックするかの注記付きで閲覧できます。
ブラウザ内でローカルに実行| ユースケース | 正規表現 | 注記 |
|---|---|---|
| メールアドレス | ^[^\s@]+@[^\s@]+\.[^\s@]+$ |
実用的な構文チェック。配信には検証が必要です。 |
| HTTP または HTTPS URL | ^https?:\/\/[^\s]+$ |
スキームをチェックし、空白を拒否します。完全な検証には URL パーサーを使用してください。 |
| IPv4 アドレス | ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ |
0 から 255 までのオクテットを受け付けます。 |
| UUID バージョン 1–5 | ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ |
標準のハイフン形式と RFC バリアントビットをチェックします。 |
| ISO 形式の日付 | ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
YYYY-MM-DD の形をチェックしますが、月ごとの日数制限はチェックしません。 |
| 24時間形式 | ^(?:[01]\d|2[0-3]):[0-5]\d$ |
00:00 から 23:59 までの値を受け付けます。 |
| 16進数カラー | ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ |
RGB、RRGGBB、RRGGBBAA 表記に対応しています。 |
| セマンティック バージョン | ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$ |
コア バージョンに加えて、任意のプレリリースとビルド メタデータに一致します。 |
| 符号付き整数 | ^-?\d+$ |
オプションのマイナス記号を許可 |
| 小数 | ^-?(?:\d+|\d*\.\d+)$ |
整数と小数に対応し、.5 のような値も含みます。 |
| URL スラッグ | ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
小文字の ASCII 単語を単一のハイフンで区切ったもの。 |
| HTML のようなタグ | <\/?[A-Za-z][^>]*> |
単純な抽出のみに便利です。HTML の解析には HTML パーサーを使用してください。 |
| 先頭または末尾の空白 | ^\s+|\s+$ |
両端の空白を除去する場合はグローバルフラグを使用してください。 |
| 空行 | ^\s*$ |
各行を個別に評価するにはマルチラインモードを使用してください。 |
| 隣接する重複単語 | \b([A-Za-z]+)\s+\1\b |
大文字小文字を無視する場合は大文字小文字を区別しないモードを使用してください。 |
JavaScript、PCRE、Python、Java、.NET、Go、Ruby は正規表現の機能を完全には同じようには実装していません。後読み、名前付きグループ、Unicode プロパティ、所有量指定子、インラインモディファイアに依存する前に、対象エンジンを確認してください。
セキュリティ上重要な検証では、最初に入力を正規化し、明示的な長さ制限を適用し、データ形式に専用のパーサーがある場合はそれを使用してください。