正規表現テスター(無料・登録不要)
入力したパターン・フラグを各言語のコードに変換します。
基本メタ文字
.改行以外の任意の1文字^行の先頭(mフラグで各行先頭)$行の末尾(mフラグで各行末尾)\d数字 [0-9] と同等\D数字以外 [^0-9] と同等\w英数字+アンダースコア [a-zA-Z0-9_]\W\w 以外の文字\s空白文字(スペース・タブ・改行等)\S空白以外の文字\b単語境界(\wと\Wの境界)\B単語境界以外\n改行文字(LF)\tタブ文字量指定子(greedy / lazy)
*0回以上(greedy: できるだけ多く)+1回以上(greedy: できるだけ多く)?0回または1回{n}ちょうどn回{n,}n回以上{n,m}n〜m回*?0回以上(lazy: できるだけ少なく)+?1回以上(lazy: できるだけ少なく)??0回または1回(lazy)文字クラス
[abc]a・b・c のいずれか1文字[^abc]a・b・c 以外の1文字[a-z]aからzまでの英小文字[A-Z]AからZまでの英大文字[0-9]0から9までの数字[a-zA-Z0-9]英数字(大文字小文字含む)グループと参照
(abc)キャプチャグループ($1で参照)(?:abc)非キャプチャグループ(参照なし)(?<name>abc)名前付きキャプチャグループ($<name>で参照)a|baまたはb(OR条件)\1後方参照(1番目のキャプチャを再マッチ)先読み・後読み(Lookaround)
(?=abc)肯定的先読み: abc が続く箇所にマッチ(?!abc)否定的先読み: abc が続かない箇所にマッチ(?<=abc)肯定的後読み: abc が先行する箇所にマッチ(?<!abc)否定的後読み: abc が先行しない箇所にマッチフラグ一覧
gグローバル: 全件マッチ(なければ最初の1件のみ)i大文字小文字を区別しないm複数行モード: ^/$が各行の先頭/末尾にマッチsdotAll: . が改行文字にもマッチ(ES2018+)uUnicodeモード: サロゲートペアを正しく扱うysticky: lastIndexの位置からのみマッチ主要正規表現テスターとの機能比較(2026年5月調査)
| 機能 | tool-box.jp (当ツール) |
regex101 .com |
studioasari regextester |
weblabo regex |
site24x7 regex |
|---|---|---|---|---|---|
| リアルタイムハイライト | ✅ カラー分け | ✅ | ✅ | ✅ | ✅ |
| フラグ対応数 | 6種 (g/i/m/s/u/y) | 6種 | 3種 (g/i/m) | ❌ | 3種 |
| フラグ説明(ホバー) | ✅ 詳細 | ❌ | ❌ | ❌ | ❌ |
| マッチ位置(行・列) | ✅ | ✅ | △ | ❌ | △ |
| キャプチャグループ表示 | ✅ 番号・名前 | ✅ | ✅ | ❌ | ✅ |
| 置換プレビュー | ✅ | ✅ | ✅ | ❌ | ✅ |
| マッチ抽出機能 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 日本語チートシート | ✅ 先読み/後読み含む | ❌ 英語 | △ 簡易 | ❌ | ❌ |
| テンプレート集 | ✅ 10種 | ❌ | ❌ | ❌ | ❌ |
| 共有URL | ✅ Base64 | ✅ | ❌ | ❌ | ❌ |
| コードスニペット生成 | ✅ 4言語 | ✅ | ❌ | ❌ | ❌ |
| 日本語UI | ✅ 完全 | ❌ | ✅ | ✅ | △ |
| ダークモード | ✅ | ✅ | ✅ | ❌ | ❌ |
※ 調査日: 2026年5月14日 / △は部分対応
正規表現(Regular Expression)は、文字列のパターンを表現するための表記法です。検索・置換・バリデーションなど幅広い場面で使われます。
まず覚えるべき5つのパターン
\d+\d{3} で3桁固定。
[a-zA-Z]+iフラグを使えば [a-z]+ でも大文字にマッチ。
^.+$mフラグで各行に対して適用。
(\w+)@(\w+\.\w+)(?<=\d)(?=(?:\d{3})+$)greedy vs lazy(欲張りvs控えめ)の違い
量指定子はデフォルトでgreedy(欲張り)— できるだけ多くの文字にマッチしようとします。?を追加するとlazy(控えめ)— できるだけ少なくなります。
<a>リンク</a><b>太字</b><.+> → <a>リンク</a><b>太字</b>(全体1件)<.+?> → <a>・</a>・<b>・</b>(各タグ4件)JavaScriptで正規表現を使う主なメソッドと使い分けを解説します。
パターンにマッチするか真偽値で返す。バリデーションに最適。
const re = /^\d+$/;
re.test('123'); // true
re.test('12a'); // false
マッチ情報を配列で返す。gフラグなしで詳細・gフラグで全件。
const str = 'cat bat sat';
str.match(/[a-z]at/g);
// ['cat', 'bat', 'sat']
マッチ箇所を置換。$1・$2でキャプチャグループを参照可能。
// 日付フォーマット変換
'2026-05-14'.replace(
/(\d{4})-(\d{2})-(\d{2})/,
'$1年$2月$3日'
);
// '2026年05月14日'
gフラグ必須。全マッチのイテレータを返す。グループ情報も取得可。
const re = /(?<y>\d{4})-(?<m>\d{2})/g;
for (const m of str.matchAll(re)) {
console.log(m.groups.y, m.groups.m);
}
正規表現で文字列を分割。区切り文字が不規則な場合に有効。
// スペース・タブ・カンマで分割
'a, b c\td'.split(/[\s,]+/);
// ['a', 'b', 'c', 'd']
gフラグ時にlastIndexを更新しながら1件ずつ返す。
const re = /\d+/g;
let m;
while ((m = re.exec('1a2b3')) !== null) {
console.log(m[0], m.index);
// '1' 0 / '2' 2 / '3' 4
}
実務でよく使う正規表現パターンの解説。上のテスターから「テンプレート」ボタンでワンクリック挿入できます。
[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}
RFC準拠の簡易メールバリデーション。多くの実用ケースをカバー。完全なRFC 5322準拠が必要な場合はより複雑なパターンが必要。
https?:\/\/[\w/:%#\$&?()~.=+\-]+
http・httpsで始まるURLにマッチ。クエリパラメータやハッシュも含む。URLデコードされた文字には別途対応が必要。
0\d{1,4}[\-\.()\(\)]?\d{1,4}[\-\.()\(\)]?\d{4}
固定電話・携帯電話・フリーダイヤルに対応。ハイフン・ドット・括弧の有無に対応。ハイフンなし連結でも一致。
\d{3}[\--]?\d{4}
〒123-4567形式・1234567のハイフンなし形式の両方にマッチ。全角ハイフン(-)にも対応。
\d{4}[\-/年]\d{1,2}[\-/月]\d{1,2}日?
2026-05-14・2026/5/14・2026年5月14日 など複数フォーマットに対応。厳密な日付範囲チェックは別途ロジック必要。
(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)
0〜255の各オクテットを厳密にバリデーション。256以上の値には一致しない。
<[^>]+?>
開始・終了タグにマッチ。<.+?>のlazy版(属性内に>がない前提)。HTMLはDOMパーサーで解析するのが理想。
(?<=\d)(?=(?:\d{3})+$)
先読みと後読みを組み合わせた高度なパターン。replace()と組み合わせて 1234567 → 1,234,567 の変換に使用。
^\s*$
空行(スペースのみの行含む)にマッチ。mフラグと組み合わせてreplace(/^\s*$/gm, '')で一括除去。
\b(?:\d[ \-]?){13,16}\b
13〜16桁の数字(スペース・ハイフン区切り可)。Visa/Mastercard/AMEX等に対応。本番環境ではPCIカード決済基準に従い専用ライブラリ推奨。
- Q 正規表現テスターとは何ですか?
- A 正規表現テスターは、書いた正規表現パターンが特定の文字列にマッチするかをリアルタイムで確認できるツールです。マッチした箇所のハイライト表示、キャプチャグループの内容確認、置換プレビューなどができます。
- Q 正規表現のフラグとは何ですか?
- A 正規表現フラグはパターンの動作を変えるオプションです。主なフラグ: g(全件マッチ・なければ最初の1件のみ)、i(大文字小文字を区別しない)、m(^/$が各行の先頭/末尾にマッチ)、s(.が改行にもマッチ・ES2018+)、u(Unicodeモード)、y(sticky・lastIndexの位置から開始)。
- Q 先読み・後読みはどのブラウザで使えますか?
- A 肯定的先読み(?=...)・否定的先読み(?!...)はすべての現代ブラウザで使用可能です。後読み((?<=...)・(?
- Q 正規表現の共有URLはどのように機能しますか?
- A 「共有URL」ボタンを押すと、入力したパターン・フラグ・テストテキストをBase64エンコードしてURLパラメータとして付加したURLが生成されます。そのURLを開くと同じ状態が復元されます。URLはページを離れても保持されるため、チームメンバーへの共有に便利です。
- Q greedy(欲張り)とlazy(控えめ)の違いは?
- A greedy量指定子(*・+・?・{n,m})はデフォルトで可能な限り多くの文字にマッチしようとします。lazy量指定子(*?・+?・??・{n,m}?)は可能な限り少ない文字でマッチしようとします。例えば<.+>はHTMLを丸ごとマッチしますが、<.+?>は各タグに個別にマッチします。
- Q JavaScriptの正規表現でUnicode文字を扱うには?
- A uフラグ(Unicodeモード)を使用します。uフラグを付けると、サロゲートペア(絵文字・特殊文字等)を正しく1文字として扱います。また\p{...}というUnicodeプロパティエスケープが使えるようになり、\p{L}で全言語の文字、\p{Script=Hiragana}でひらがな等を指定できます(ES2018+)。