Development•
2026-02-19
•10 min
•alltools.one Team
regexregular-expressionsdevelopmentpatternsvalidation
正規表現チートシート:すべての開発者に必要なパターン
正規表現はパターンを学ぶまでは魔法のように感じますが、一度覚えれば、テキスト検索、バリデーション、データ抽出、文字列操作に欠かせないツールになります。
パターンを取得して、Regex Tester に貼り付けて実験し、ニーズに合わせて調整してください。
基本的な正規表現構文
文字クラス
| パターン | マッチ対象 | 例 |
|---|---|---|
. | 改行以外の任意の文字 | a.c は "abc"、"a1c" にマッチ |
\d | 任意の数字 (0-9) | \d{3} は "123" にマッチ |
\w | 単語文字(文字、数字、アンダースコア) | \w+ は "hello_1" にマッチ |
\s | 空白文字 | \s+ はスペースにマッチ |
[abc] | a、b、c のいずれか | [aeiou] は母音にマッチ |
[^abc] | a、b、c 以外の任意の文字 | [^0-9] は数字以外にマッチ |
[a-z] | 範囲内の任意の文字 | [A-Za-z] は英字にマッチ |
量指定子
| パターン | 意味 |
|---|---|
* | 0回以上 |
+ | 1回以上 |
? | 0回または1回 |
{n} | ちょうどn回 |
{n,m} | n回からm回 |
アンカーとグループ
| パターン | 意味 |
|---|---|
^ | 文字列の先頭 |
$ | 文字列の末尾 |
\b | 単語境界 |
(abc) | キャプチャグループ |
(?:abc) | 非キャプチャグループ |
a|b | 選択(or) |
(?=abc) | 肯定先読み |
実用的なパターン
メールアドレスの検証
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
URL マッチング
https?:\/\/[\w.-]+(?:\.[a-zA-Z]{2,})(?:\/[\w./?%&=-]*)?
パスワード強度
8文字以上、大文字1つ、小文字1つ、数字1つ、特殊文字1つを含む:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$
強力なパスワードの生成には、Password Generator をご利用ください。
16進カラーコード
^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
カラーフォーマットの変換には Color Converter をご利用ください。
UUID の検証
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
有効な UUID の生成には UUID Generator をご利用ください。
正規表現のパフォーマンスのヒント
- 具体的に指定する —
[a-zA-Z]は.より高速 - 壊滅的なバックトラッキングを避ける —
(a+)+のようなネストされた量指定子は指数関数的な時間がかかる - 値が不要な場合は非キャプチャグループを使用する
- パターンにアンカーを付ける —
^pattern$はアンカーなしの検索より高速 - エッジケースでテストする — デプロイ前に Regex Tester を使用
よくある質問
* と + の違いは?
* は0回以上の出現にマッチし、+ は少なくとも1回必要です。したがって ab*c は "ac" にマッチしますが、ab+c はマッチしません。
正規表現を大文字小文字を区別しないようにするには?
i フラグを使用します:JavaScript では /pattern/i、Python では re.IGNORECASE です。
関連リソース
- メールアドレスの正規表現検証 — 本番環境で動作するパターン
- Regex Tester ツール — リアルタイムでパターンをテスト・デバッグ
- Password Generator — 正規表現ルールに一致するパスワードを生成
- UUID Generator — 有効な UUID を生成