正規表現のテストとデバッグ:基礎から効率的なパターンまで

テキスト(更新: 2026年4月23日)

なぜオンラインで正規表現をテストするのか?

正規表現は強力ですが、一度で正しく書けることは少ありません。オンラインテスターでは次ができます。

  • リアルタイムハイライト:パターンとテキストを入力すると即座に一致を表示
  • キャプチャグループの可視化:各グループの内容を確認
  • フラグの切り替えg / i / m / s をすばやく試せる
  • 構文エラーの即時表示:不正なパターンはすぐに警告

正規表現構文早見表

基本マッチ

構文 意味 マッチ
. 任意の1文字(改行除く) a.c abc, a1c
\d 数字 \d{3} 123
\w 単語文字 \w+ hello_1
\s 空白 a\sb a b
[abc] 文字クラス [aeiou] a, e, i
[^abc] 否定クラス [^0-9] 数字以外

量詞

構文 意味 貪欲/非貪欲
* 0回以上 a* / a*?
+ 1回以上 a+ / a+?
? 0回または1回 a? / a??
{n,m} n〜m回 a{2,4}

グループと参照

構文 意味
(abc) キャプチャグループ (\d{4})-(\d{2})
(?:abc) 非キャプチャ (?:http|https)://
\1 後方参照 (\w)\1 は aa, bb
(?<name>) 名前付きグループ (?<year>\d{4})

オンライン正規表現ツールの使い方

手順

  1. 正規表現テスター を開く
  2. 正規表現欄にパターンを入力
  3. テスト欄に対象テキストを入力
  4. フラグを選択(g 全体 / i 大文字小文字無視 / m 複数行)
  5. ハイライトと一致結果を確認

よく使うフラグ

フラグ 意味 デフォルト
g すべて一致 最初の1件のみ
i 大文字小文字を無視 区別する
m 複数行モード 単一行
s . が改行にも一致 改行には不一致
u Unicodeモード

よくある落とし穴

1. 貪欲マッチ

テキスト: <div>hello</div><div>world</div>
パターン: <div>.*</div>
結果: 全体が1つの一致に!

修正: <div>.*?</div>  ← 非貪欲で2つに分割

2. 指数的バックトラック

// 危険:ネストした量詞
/^(a+)+$/.test('a'.repeat(30) + 'b');
// 数秒かかる、またはハングする

// 修正:ネスト量詞を避ける、またはアトミックグループ

3. 特殊文字のエスケープ忘れ

パターン: price.com     ← . は任意文字
修正: price\.com        ← price.com のみ

実用例

用途 正規表現
携帯番号(中国) ^1[3-9]\d{9}$
メール(簡易) ^[\w.-]+@[\w-]+\.[\w.]+$
URL ^https?:\/\/[\w.-]+(?:\.[\w]+)+[/\w.-]*$
IPアドレス ^(\d{1,3}\.){3}\d{1,3}$
日付 YYYY-MM-DD `^\d{4}-(?:0[1-9]
漢字 [\u4e00-\u9fff]+

よくある質問

ツールでは動くがコードでは動かない?

g フラグの有無、改行を含む文字列に m / s が必要かどうかを確認してください。

複数行テキストをマッチさせるには?

s フラグで . に改行を含めるか、[\s\S] を使います。


まとめ

正規表現は開発者に必須ですが、構文ミスは起きやすいものです。正規表現テスター でリアルタイム検証し、効率よくデバッグしましょう。ToolsKuには 検索・置換テキスト比較 もあり、テキスト処理をまとめて対応できます。

#正则表达式#Regex#文本处理#教程#调试