正規表現 インタラクティブチートシート
各行の「試す」ボタンをクリックするとパターンがライブテスターに読み込まれます。
ライブテスター
/
/
マッチなし
マッチした箇所がここにハイライト表示されます
一致するエントリが見つかりませんでした。
| パターン | 説明 | 例 | 操作 |
|---|---|---|---|
| 文字クラス (Character Classes) | |||
. | 改行以外の任意の1文字 | c.t → "cat", "cut", "c3t" | |
\d | 数字 [0-9] | \d+ → "42", "100" | |
\D | 数字以外の文字 | \D+ → "abc ", " xyz" | |
\w | 単語文字 [a-zA-Z0-9_] | \w+ → "hello", "world_2" | |
\W | 単語文字以外(記号・空白など) | \W → " ", "-", "@" | |
\s | 空白文字(スペース・タブ・改行など) | \s+ → 単語間の空白 | |
\S | 空白以外の文字 | \S+ → "hello", "world" | |
\t | 水平タブ文字 | \t → TSVの区切り文字 | |
\n | 改行文字 | \n → 行の区切り | |
[abc] | 文字クラス — a・b・cのいずれか1文字 | [aeiou] → 母音 | |
[^abc] | 否定文字クラス — a・b・c以外の文字 | [^aeiou\s] → 子音 | |
[a-z] | 文字範囲(aからzまでの1文字) | [a-zA-Z]+ → 英単語 | |
| 量指定子 (Quantifiers) | |||
* | 0回以上(貪欲マッチ) | ab* → "a", "ab", "abbb" | |
+ | 1回以上(貪欲マッチ) | ab+ → "ab", "abbb"("a"は非マッチ) | |
? | 0回または1回(省略可能) | colou?r → "color", "colour" | |
{n} | ちょうどn回繰り返す | \d{4} → "2025", "1234" | |
{n,m} | n回以上m回以下の繰り返し | \d{2,4} → "12", "123", "1234" | |
{n,} | n回以上の繰り返し | \d{3,} → "123", "12345" | |
*? | 0回以上(非貪欲 — 最短マッチ) | <.*?> → 各HTMLタグ | |
+? | 1回以上(非貪欲 — 最短マッチ) | ".+?" → 引用符内の文字列 | |
| アンカー・境界 (Anchors & Boundaries) | |||
^ | 文字列(または行)の先頭(mフラグで行ごと) | ^\d+ → 先頭の数字 | |
$ | 文字列(または行)の末尾(mフラグで行ごと) | \d+$ → 末尾の数字 | |
\b | 単語境界(単語文字と非単語文字の境目) | \bcat\b → "cat"("catch"は非マッチ) | |
\B | 非単語境界(単語の内側) | \Bcat\B → "concatenate"の中の"cat" | |
| グループ・交替 (Groups & Alternation) | |||
(abc) | キャプチャグループ — マッチした文字列を保存 | (\d{4})-(\d{2}) → 年・月 | |
(?:abc) | 非キャプチャグループ — グループ化のみ(保存しない) | (?:foo|bar)baz → "foobaz" | |
(?<name>) | 名前付きキャプチャグループ | (?<yr>\d{4}) → グループ"yr" | |
a|b | 交替 — aまたはbにマッチ | cat|dog → "cat"または"dog" | |
\1 | キャプチャグループ1への後方参照 | (\w+) \1 → 重複単語 | |
| 先読み・後読み (Lookahead & Lookbehind) | |||
(?=abc) | 肯定先読み — abcが後ろに続く場合にマッチ | \d+(?= USD) → " USD"の前の数字 | |
(?!abc) | 否定先読み — abcが後ろに続かない場合にマッチ | \d+(?! USD) → USD以外の前の数字 | |
(?<=abc) | 肯定後読み — abcが前にある場合にマッチ | (?<=\$)\d+ → $の後の数字 | |
(?<!abc) | 否定後読み — abcが前にない場合にマッチ | (?<!\$)\d+ → $以外の後の数字 | |
| フラグ (Flags / Modifiers) | |||
g | グローバル — 最初だけでなく全てのマッチを検索 | /\d+/g → 全ての数字 | |
i | 大文字・小文字を区別しない | /hello/i → "Hello", "HELLO" | |
m | 複数行 — ^と$を各行の先頭・末尾に対応させる | ^\w+/m → 各行の先頭の単語 | |
s | dotAll — ドット(.)が改行もマッチするようになる | /.+/s → 複数行にまたがるマッチ | |
u | Unicode — Unicode完全対応モード | /\p{L}+/u → Unicode文字 | |
| 特殊文字のエスケープ (Escaping) | |||
\. | リテラルのドット(特殊文字は\でエスケープ) | \. → "3.14"のドット部分 | |
\( \) \[ \] | リテラルの括弧・角括弧 | \(\d+\) → "(42)" | |
よく使う正規表現パターン集
メールアドレス
[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}標準的なメールアドレス形式(サブドメイン・プラスアドレス対応)をマッチします。
HTTP/HTTPS URL
https?:\/\/(?:www\.)?[-\w]+(?:\.[-\w]+)+[^\s]*httpおよびhttpsのURLをパス・クエリ付きでマッチします。
日本の電話番号
0\d{1,4}[-\s]?\d{1,4}[-\s]?\d{4}固定電話・携帯電話を含む一般的な日本の電話番号形式をマッチします。
日付 ISO形式 (YYYY-MM-DD)
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])月・日の範囲チェック付きISO 8601日付形式をバリデーションします。
IPv4アドレス
\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b各オクテット0〜255の範囲チェック付きIPv4アドレスをバリデーションします。
16進数カラーコード
#(?:[0-9a-fA-F]{3}){1,2}\b#で始まる3桁および6桁の16進数カラーコードをマッチします。
日本の郵便番号
\d{3}-?\d{4}ハイフンあり・なし両方の日本の郵便番号形式をマッチします。
強力なパスワード
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}小文字・大文字・数字・記号をそれぞれ1文字以上含む8文字以上のパスワード。
freee会計で請求書・帳簿をラクに管理
正規表現でデータ抽出・加工を自動化しても、最終的な帳簿管理はfreeeにお任せ。エンジニア・フリーランスに人気のクラウド会計ソフトです。初月無料でお試しいただけます。
freeeを無料で試す正規表現の使い方
**正規表現(Regex)**とは、文字列の検索パターンを定義する文字列の連続です。ほぼすべてのプログラミング言語やテキストエディタで、入力バリデーション・データ抽出・検索置換・文字列解析などのために活用されています。
基本概念:
- 貪欲 vs. 非貪欲 —
*、+、{n,m}はデフォルトで貪欲(できるだけ長くマッチ)です。末尾に?を付ける(例:*?、+?)と非貪欲(できるだけ短くマッチ)になります。HTMLタグや引用符付き文字列のパースで重要です。 - キャプチャグループ vs. 非キャプチャグループ — マッチした文字列を後で参照(
$1など)する場合は(...)を使用します。グループ化だけが目的で値を保存しない場合は(?:...)を使用します。 - アンカーと複数行フラグ —
^と$はデフォルトで文字列全体の先頭・末尾にマッチします。mフラグを有効にすると、各行の先頭・末尾にマッチするようになります。 - 先読み・後読みはゼロ幅 —
(?=foo)や(?<=foo)は条件を検証するだけで文字を消費しません。そのため、周囲の文字をマッチ結果に含めずに条件付きマッチが行えます。
関連ツール
正規表現をリアルタイムテスト → 正規表現テスター
SQLクエリを整形 → SQLフォーマッター
テキストの差分を確認 → テキスト差分チェッカー
