DevToys Web Pro iconDevToys Web Proブログ
評価:
ブラウザ拡張機能を試す:

正規表現テスター

設定

パターン

テスト文字列

  • 一致

    一致を表示するにはパターンを入力してください

    置換

    リファレンス

    文字クラス

    .改行以外の任意の文字
    [abc]a、b、またはcに一致
    [^abc]a、b、c以外の任意の文字に一致
    [a-z]文字範囲(aからz)
    \d数字(0-9)
    \D数字以外
    \w単語文字 [a-zA-Z0-9_]
    \W単語文字以外
    \s空白文字
    \S空白文字以外

    アンカー

    ^文字列/行の先頭
    $文字列/行の末尾
    \b単語境界
    \B単語境界以外

    エスケープ文字

    \tタブ
    \n改行
    \r復帰(キャリッジリターン)
    \0ヌル文字
    \xhh16進文字(例: \xFF)
    \uhhhhUnicode文字

    グループと参照

    (abc)キャプチャグループ
    (?:abc)非キャプチャグループ
    (?<name>abc)名前付きキャプチャグループ
    \1グループ1への後方参照
    \k<name>名前付きグループへの後方参照

    ルックアラウンド

    (?=abc)肯定先読み
    (?!abc)否定先読み
    (?<=abc)肯定後読み
    (?<!abc)否定後読み

    量指定子と選択

    a*0回以上(貪欲)
    a+1回以上(貪欲)
    a?0回または1回(任意)
    a{n}ちょうどn回
    a{n,}n回以上
    a{n,m}n回からm回の間
    a*?0回以上(非貪欲)
    a+?1回以上(非貪欲)
    a|baまたはbに一致

    置換

    $1, $2キャプチャしたグループの内容
    $&一致全体
    $`一致の前
    $'一致の後
    $$リテラルの$文字
    技術的な詳細

    RegExテスターの仕組み

    このツールでできること

    regexテスターを使うと、サンプルテキストに対して正規表現をリアルタイムでテストできます。regexデバッガーとregexバリデーターの両方として機能し、開発者がパターンマッチング式を作成・テスト・改善するのに役立ちます。このテスターはJavaScriptのRegExpエンジン(ECMAScript)を使用するため、PCRE、.NET、Javaのregexエンジンとは構文が異なる場合があります。regexをオンラインでテストしたい場合、このツールはすべての一致、キャプチャグループ、置換結果を表示します。ツールはJavaScriptの正規表現構文をサポートし、JavaScriptのregexフラグ(g, i, m, s, u): グローバル(g)、大文字小文字を区別しない(i)、マルチライン(m)、dotAll(s)、Unicode(u)に対応しています。テスト文字列内の一致箇所をハイライトし、キャプチャグループを表示し、検索と置換の操作を行って、regexがテキストをどのように変換するかをプレビューできます。

    開発者によくある利用シーン

    開発者は、検証パターンの作成、ログファイルの解析、文字列からのデータ抽出の際にregexテスターを使用します。regexpパターンをテストすることで、エッジケースの特定、複雑な式のデバッグ、各フラグがマッチング挙動に与える影響の理解に役立ちます。多くの開発者は、メールアドレス、電話番号、URLなどの構造化データ形式を検証するためにregexテスターを利用します。このツールは、フォーム検証、ログ分析、テキスト処理タスクで有用です。regexテスターは、マッチの反復やグループ抽出を通じてパターンがテキストにどう一致するかを示すため、正規表現の学習にも役立ちます。マルチラインテキストや特殊文字でregexpをテストする際、このツールは何が一致し、なぜ一致するのかを正確に確認するのに役立ちます。

    データ形式、型、またはバリエーション

    regexテスターはJavaScriptの正規表現構文を扱います。これはPerl風のregexに基づいていますが、他のregexエンジンとはいくつか違いがあります。このツールは、数字の文字クラスである\d、単語文字の\w、空白の\sなどをサポートします。アンカー( ^$)、量指定子(*+?)、選択(|)にも対応しています。マルチラインフラグは^$のマッチ方法に影響し、dotAllフラグは.が改行文字に一致するようにします。regexの改行挙動を理解することは、マルチラインのテキスト処理において重要です。例えば、/\d-\d-\d/のようなパターンを電話番号文字列に対してテストすると、どの部分が一致するかが正確に分かります。regexの改行処理はフラグに依存します。パターン^foo.*bar$は、dotAllフラグ(s)がある場合にのみ"foo\nbar"に一致します。これは、デフォルトでは.が改行に一致しないためです。regexの改行パターンを扱う場合、リテラルの改行に一致させるには\nを、Windowsの改行(CRLF)には\r\nを使用してください。

    よくある落とし穴とエッジケース

    よくある間違いの一つは、JavaScriptのregexでは区切り文字として引用符ではなくスラッシュを使うことを忘れることです。もう一つの問題は、グローバルフラグがマッチングに与える影響の誤解です。これがないと最初の一致のみが返されますが、これがあるとすべての一致が見つかります。regexの改行処理は難しいことがあります。dotAllフラグを使用しない限り、.はデフォルトで改行に一致しません。文字クラスの否定[^...]は、クラスに含まれない任意の文字に一致するため、混乱しやすいです。貪欲量指定子と最短量指定子( * vs *?)は挙動が異なり、予期しない結果を引き起こすことがあります。先読み・後読みアサーション( (?=...)(?&lt;=...))は強力ですが、デバッグが難しい場合があります。開発者は、空文字列、特殊文字、Unicode文字などのエッジケースを含め、さまざまな入力でregexパターンをテストすべきです。

    コードではなくこのツールを使うべき場面

    このregexテスターは、パターンの素早い作成、複雑な式のデバッグ、正規表現構文の学習に使用してください。特に、未知の構文や複雑なパターンを扱う場合、コードに実装する前にregexパターンをテストするのに最適です。視覚的なフィードバックにより、パターンが特定のテキストに一致する/しない理由を特定しやすくなります。本番コードでは、IDEやユニットテストフレームワークに統合されたregexテスターを使用し、テストスイートの一部としてパターンを検証してください。ブラウザツールは対話的な開発と学習に優れ、コードベースのソリューションは自動化、CI/CDパイプラインとの統合、大規模データセットに対するパターンテスト能力を提供します。複雑なアプリケーションでは、自動化されたregexテストにより、さまざまな入力やエッジケースに対してパターンが正しく動作することを保証できます。