正規表現テスター
マッチハイライトとキャプチャグループ詳細付きでリアルタイムに正規表現をテスト。無料、ブラウザ内で処理。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
正規表現について
正規表現(RegEx)は文字列のパターンマッチングのための強力なミニ言語です。テキストの検索・抽出・置換・バリデーションに使われ、プログラミング・データ処理・テキスト編集のあらゆる場面で活躍します。
実際の動作例
g をオンにしたときのテスターの結果です。
| 正規表現 | テスト文字列 | マッチ |
|---|---|---|
^\d{3}-\d{4}$ | 100-0001 | 全体に一致(郵便番号の形式) |
[ぁ-んァ-ヶー一-龠]+ | 注文番号は12345です | 注文番号は、です |
<.+> | <a>foo</a> | <a>foo</a>(最長一致:最初の < から最後の > まで) |
<.+?> | <a>foo</a> | <a>、</a>(最短一致) |
(?<=\$)\d+ | cost $42 | 42(後読み) |
^(?<ts>\S+)\s+(?<level>\w+)\s+(?<msg>.+)$ | 2026-04-07T14:23:01 ERROR connection refused | 1 件。グループは 2026-04-07T14:23:01、ERROR、connection refused |
正規表現が確認するのは形式だけです。^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$ は 2026-02-31 も通すので、日付は日付ライブラリで解析してください。郵便番号の正規表現も、その番号が実在するかまでは確認しません。
よくある間違い
- メタ文字のエスケープ漏れ。
.*+?()[]{}^$|\は特別な意味を持ちます。ピリオドそのものには\.と書きます。 - 複数行テキストの
^と$。mをオフにすると、テキスト全体の先頭と末尾にしか一致しません。 \wは ASCII だけ。café 東京に\w+を使うとcafだけが一致し、漢字には一致しません。日本語には[ぁ-んァ-ヶー一-龠]のような範囲を使います。- 量指定子の入れ子。
(a+)+$は一致に近い文字列で長時間かかることがあります。ネイティブ JavaScript RegExp を Worker で実行し、全体の上限は 2 秒です。「キャンセル」で停止できます。時間切れやキャンセルでは完全な結果は出ません。入力を変えると前の処理を停止します。
制限事項
- JavaScript の構文だけです。 Python の
(?P<name>...)は「Invalid group」になるので(?<name>...)と書きます。Go(RE2)、PCRE、Java 向けの正規表現は動作が異なることがあります。 - フラグは 4 つ。 使えるのは
g、i、m、sだけです。uがないため\p{L}は文字列p{L}として扱われ、y、d、vも使えません。 - グループは番号で表示されます。 名前付きグループもグループ 1、グループ 2 と表示されます。
- 件数は全体、表示は上限付き。 完了した処理では全マッチを数えます。ハイライトは先頭 100,000 UTF-16 単位と最大 1,000 件までです。一覧は先頭 100 件と各マッチの 20 グループまで、各値は 1,000 単位、合計 100,000 単位までです。短縮した値には
…を付けます。index は UTF-16 単位で、前の絵文字 1 つにつき 2 増えます。Worker 対応が必要です。 - 置換はできません。 テスターはマッチを探すだけで、
replace()は実行しません。
FAQ
どの正規表現フレーバーを使用していますか?
JavaScriptのネイティブRegExpエンジンを使用しています。後方参照(\1、\k<name>)や先読み・後読みは使えますが、PCRE の再帰パターンや所有量指定子は使えません。
フラグ(g, i, m等)は使えますか?
はい。チェックボックスで g(グローバル)、i(大文字小文字を無視)、m(複数行)、s(dotAll)の 4 つを組み合わせて設定できます。u・y・d・v フラグはありません。
キャプチャグループとは何ですか?
括弧()で囲まれたパターンの一部で、マッチの特定部分を抽出するために使います。一覧には先頭 100 件のマッチと、各マッチの 20 グループまでの内容を表示します。短縮した値には … を付けます。
データはサーバーに送信されますか?
いいえ。すべての正規表現処理はブラウザ内で完全に行われます。