正規表現チェッカー

正規表現とテスト文字列を入力すると、一致する部分をリアルタイムでハイライトし、キャプチャグループ・名前付きグループ・置換結果まで表示します。メールアドレス・郵便番号・携帯電話番号・カタカナなどのパターンもすぐに呼び出せます。

一致結果 —

一致一覧・グループ

#位置一致グループ

一致する部分はありません。


  

正規表現チェッカーとは?

正規表現(Regular Expression、regex)は、決まったルールに当てはまる文字列を検索・置換するためのパターン言語です。入力チェック、ログ解析、テキストの一括置換などに使われます。このツールはブラウザのJavaScript 正規表現エンジンで動作するため、JavaScript・TypeScript のコードとまったく同じ結果を確認できます。

検査は別スレッド(Web Worker)で実行されます。問題のあるパターンで時間がかかっても1.5秒で自動的に中断され、画面が固まることはありません。

使い方

  1. よく使うパターンから例を選ぶか、正規表現欄に直接入力します。前後のスラッシュ(/)は不要です。
  2. 必要なフラグ(g、i、m、s、u、y)をタップしてオン・オフします。
  3. テストする文字列を入力すると一致箇所が色付きで表示され、下の一覧に位置とグループの値が出ます。
  4. 置換文字列に $1、$<名前>、$& を入れると置換後の結果をプレビューできます。

正規表現の基本構文

表記意味例
\d \w \s数字 / 英数字と _ / 空白\d{3}
.改行以外の任意の1文字(s フラグなら改行も)a.c
* + ? {n,m}0回以上 / 1回以上 / 0〜1回 / n〜m回\d{3,4}
^ $先頭 / 末尾(m フラグなら各行)^\d+$
[ぁ-ん] [ァ-ヶ]ひらがな / 全角カタカナ1文字[ァ-ヶー]+
\p{Script=Han}漢字1文字(u フラグが必要)\p{Script=Han}+
( ) (?: )キャプチャグループ / キャプチャしないグループ(\d{3})-(\d{4})
(?<名前> )名前付きグループ(?<year>\d{4})
(?= ) (?! )肯定先読み / 否定先読み\d+(?=円)

フラグの意味

  • g(global):最初の1件だけでなく、一致する部分をすべて探します。
  • i(ignoreCase):大文字と小文字を区別しません。
  • m(multiline):^ と $ が各行の先頭・末尾に一致します。
  • s(dotAll):ドット(.)が改行文字にも一致します。
  • u(unicode):絵文字などのサロゲートペアを1文字として扱い、\p{…} 構文が使えます。
  • y(sticky):決まった位置(lastIndex)でのみ一致を試みます。

壊滅的バックトラック(ReDoS)に注意

^(a+)+$ のように繰り返しの中に繰り返しが入れ子になったパターンは、一致しない入力で組み合わせが指数関数的に増え、サーバーを停止させることがあります。これを ReDoS 攻撃と呼びます。このツールでタイムアウトする場合は、(a+)+ を a+ にするなどして入れ子の繰り返しをなくしてください。

よくある質問

全角と半角のカタカナを区別できますか?

はい。全角カタカナは [ァ-ヶー]、半角カタカナは [ヲ-゚] で表せます。プリセットの「全角カタカナのみ」では半角カタカナの行は一致しません。

Java や Python の正規表現と結果は同じですか?

基本的な構文はほぼ同じですが、細かい動作が異なる場合があります。たとえば Python では名前付きグループを (?P<名前>…) と書き、Java の文字列ではバックスラッシュを2つ(\\d)書く必要があります。このツールは JavaScript(ECMAScript)基準です。

メールアドレスのパターンで実在するアドレスか確認できますか?

いいえ。正規表現でわかるのは形式だけです。実在するかどうかは実際にメールを送らないと確認できません。入力内容はサーバーに送信されません。

一致が多すぎるとどうなりますか?

一致は最大5,000件まで検索・ハイライトし、一覧表には最初の300件を表示します。