テキストとエンコード

正規表現ツール

ある言語で動く正規表現が別の言語では違う挙動になったり、.gitignoreのルールが期待したファイルに一致しなかったり、公開前にルートパターンを確認したかったり——パターンマッチングのバグは仕込みやすく、パターンを読むだけでは見つけにくいものです。ここでは対象としているエンジンで実際にパターンを実行し、何が一致したかをそのまま確認できます。

正規表現テスターとPython正規表現テストは近似ではなく実際のエンジンを動かすため、名前付きグループやフラグ、置換がコード上と同じ挙動になります。正規表現エンジン比較はPCRE2とRE2を同じ式で並べて実行でき、Gitignoreテスターは判定の流れをルールごとに説明します。

7個のツール

Regex & Pattern Matchingツールに関するFAQ

JavaScriptでは動く正規表現がPythonでは失敗する、あるいはその逆はなぜですか

JavaScriptとPythonの正規表現エンジンは名前付きグループの構文や後方先読みの対応、一部のエスケープシーケンスで違いがあります。JavaScriptの正規表現テスターとPythonのreモジュールを使うPython正規表現テストで同じパターンを試し、実際の挙動を確認してください。

.gitignoreのルールが期待したファイルに一致しないのはなぜですか

Gitignoreテスターはあるパスにどのルールが適用されるかを追跡し判定の流れを表示します。あとのルールが前のルールで除外されたファイルを再度含めることがあり、/で始まるパターンはそうでないものとアンカーの効き方が異なるためです。記憶にある構文を読み直すより、実際のパスとルールで試すほうが確実です。

PCRE2とRE2の正規表現エンジンは何が違いますか

GoやripgrepなどのツールがRE2は後方参照や無制限の先読みといったPCRE2が対応する構文を拒否することで線形時間でのマッチングを保証しています。正規表現エンジン比較は同じ式を両方に対して実行するので、PCRE2で動くパターンがRE2でそもそも有効かどうかを直接確認できます。