正規表現の基本
| 記号 | 意味 | 例 |
|---|---|---|
. | 任意の1文字(改行以外) | a.c → abc, a-c |
\d | 数字(0〜9) | \d{3} → 123 |
\w | 英数字とアンダースコア | \w+ → user_01 |
\s | 空白文字(スペース・タブ・改行) | |
[abc] | a・b・c のどれか1文字 | [0-9a-f] → 16進数 |
[^abc] | a・b・c 以外の1文字 | |
* / + / ? | 0回以上 / 1回以上 / 0か1回 | colou?r |
{n,m} | n回以上m回以下 | \d{2,4} |
^ / $ | 行頭 / 行末(m フラグ時) | ^# |
( ) | グループ化・キャプチャ | (\d+)円 |
(?<名前> ) | 名前付きキャプチャ | (?<year>\d{4}) |
a|b | a または b | jpg|png |
フラグ
| フラグ | 意味 |
|---|---|
g | すべてのマッチを探す(なければ最初の1つだけ) |
i | 大文字・小文字を区別しない |
m | ^ と $ を各行の先頭・末尾にマッチさせる |
s | . を改行にもマッチさせる |
u | Unicode モード(絵文字や \p{…} を正しく扱う) |
よくある質問
ほかの言語(PHP・Python・Java)でも同じ結果になりますか?
基本的な記法は共通ですが、細かい仕様は言語ごとに異なります。このツールはブラウザの JavaScript エンジンで判定しています。たとえば Python では名前付きキャプチャを (?P<name>…) と書きます。
入力したら画面が固まりました
(a+)+$ のように繰り返しを入れ子にしたパターンは、文字列によっては計算量が爆発的に増えます(ReDoS)。ページを再読み込みして、パターンを見直してください。
メールアドレスを完全に判定する正規表現は?
規格(RFC 5322)に完全に従う正規表現は非常に複雑で、実用的ではありません。入力チェックは簡易的なパターンにとどめ、確認メールを送って実在を確かめるのが一般的です。