∞ConvertForever

正規表現テスター

正規表現を書いて、何にマッチするかをリアルタイムで確認。すべてブラウザ内で。

ツールを読み込み中…

この正規表現テスターでは、正規表現を組み立てて自分のテキストに対して即座のフィードバック付きで試せます。パターンを入力するとサンプルテキスト内のマッチが光り、カウンターが見つかった件数を示し、キャプチャグループが分解表示されるので、パターンの各部分が何をつかんだかを正確に確認できます。すべてブラウザ内で動作し、テキストがアップロードされることはありません。

正規表現は強力ですが、悪名高いほど扱いが難しく、正しく仕上げる一番速い方法は、実際の入力に対して動くのを見ることです。フラグを切り替えたり文字クラスを微調整したりして、ハイライトがすぐ更新されるのを見れば、試行錯誤が素早く視覚的なものになります。

このテスターは、あらゆるブラウザに組み込まれているJavaScriptの正規表現エンジンを使います。Webコード向けの正規表現を書く人には最適ですが、方言(フレーバー)を知っておく価値はあります。PythonやPCREなどの正規表現エンジンでは、パターンの挙動が少し異なるからです。

正規表現テスター

正規表現テスターの使い方

  1. 検索したいテキストを入力欄に入力または貼り付けます。
  2. パターン欄に正規表現を入力します。
  3. g、i、m、s、uなど、必要なフラグを切り替えます。
  4. 編集しながら、マッチがリアルタイムでハイライトされ、件数が表示されるのを見ます。
  5. 各マッチのキャプチャグループを読み、パターンが正しい部分をつかんでいるか確認します。

テスターが見せてくれるもの

何かを変えた瞬間に3つが更新されます。テキスト内のハイライトされたマッチ、見つかったマッチ件数のリアルタイム表示、そして各キャプチャグループの中身です。この3つを一緒に見れば、パターンがマッチするかどうかだけでなく、何にマッチし何を取り出しているかを正確に把握できます。

キャプチャグループは、パターンがひそかに間違うことの多い場所です。正規表現は全体としては正しいテキストにマッチしていても、あるグループが多くつかみすぎたり少なすぎたりすることがあり、各グループを個別に表示することで、その誤りがコードに届く前に明らかになります。

フラグを理解する

フラグはパターン全体の挙動を変えます。gフラグは最初で止まらずすべてのマッチを見つけ、iはマッチを大文字小文字を区別しないようにし、mは行頭・行末のアンカーを文字列全体ではなく各行に適用させます。

sフラグは dotall とも呼ばれ、ドットが改行文字にもマッチするようにし、行をまたぐパターンに便利です。uフラグは完全なUnicode処理を有効にします。ここでオン・オフを切り替えるとマッチのハイライトが描き直され、各フラグの効果を直接確認できます。

JavaScriptの正規表現フレーバーは重要

これは心に留めておくべき正直な注意点です。このツールはJavaScriptの正規表現エンジンを動かすので、ここで作ったものはブラウザやNode.jsのコードでの動作とまったく同じですが、Python、PCRE、Java、.NETと必ずしも同じとは限りません。

違いは、後読み(lookbehind)の対応、名前付きグループの構文、一部のUnicodeプロパティエスケープ、いくつかのエッジケースの扱い方などに現れます。パターンがJavaScript以外の環境向けなら、出荷前にそのエンジンでテストし、ここでの結果はJavaScriptについてのみ確かなものと考えてください。

誰がなぜ使うのか

開発者は常に使います。メールや電話番号の形式の検証、ログ行の解析、雑然とした文字列からのフィールド抽出、エディタ用の検索置換パターンの作成などです。実際のサンプルに対して式を先に正しくしておけば、後のデバッグが省けます。

コーディング以外のデータクレンジングにも同じくらい役立ちます。エクスポートしたデータを整えていて、繰り返し現れるパターンを見つけたり取り除いたりする必要があるなら、実データの一部に対してここで正規表現を試せば、本番実行前に期待どおり動くか確認できます。

パターンを組み立てるコツ

小さく始めて、追加のたびにハイライトを確認しながら、パターンを少しずつ育てましょう。一度に書いた長い式をデバッグするより、どの変更で動いていたパターンが壊れたかを見るほうがはるかに簡単です。

捕まえたい、あるいは避けたい厄介なエッジケースを含む、現実的なサンプルテキストを貼り付けましょう。きれいな例では動くパターンも、実世界の入力ではつまずくことが多いので、早い段階で雑多なものを与えてください。ドットや括弧などの特殊文字を文字どおりの意味で使うときは、エスケープを忘れないでください。

すべてがブラウザ内にとどまる

パターンもテストテキストも、ブラウザ自身の正規表現エンジンによってローカルで処理されます。何もサーバーに送られません。これはサンプルデータが実物のとき、たとえばログの抜粋、顧客記録、端末から出したくない情報のときに重要です。

アカウントも、サーバー側に保存される履歴もありません。タブを閉じればパターンとデータは消えるので、残したいものはコピーしてください。このプライバシーと引き換えに、ツールは訪問間で作業を覚えていません。

知っておくべき制約

うまく書けていないパターンは大きな入力に対して遅くなることがあり、特にネストした量指定子で壊滅的なバックトラッキングを起こしやすいものは要注意です。編集後にページが固まったように見えたら、さらにテキストを与えるのではなく、パターンを単純化してください。

このテスターは式を組み立てて確認するためのもので、巨大なファイルの一括処理用ではありません。かなりの量のサンプルは快適に扱えますが、あくまで正規表現を正しく仕上げるための作業台であり、その後は完成したパターンを自分のコードやエディタで実行します。

よくある質問

どの正規表現フレーバーを使いますか?

ブラウザに組み込まれたJavaScriptの正規表現エンジンを使います。パターンはブラウザやNode.jsのコードでの動作とまったく同じですが、Python、PCRE、Java、.NETとは異なる場合があるので、必要なら別途テストしてください。

私のパターンやテストテキストはアップロードされますか?

いいえ。正規表現もサンプルテキストも、ブラウザ自身の正規表現エンジンによって完全にブラウザ内で処理されます。何もサーバーに送られないので、実際のログやデータのサンプルに対しても安全に試せます。

フラグ g、i、m、s、u は何をしますか?

gはすべてのマッチを見つけ、iは大文字小文字を無視し、mは行アンカーを各行に適用し、sはドットが改行にマッチするようにし、uは完全なUnicode処理を有効にします。ここで切り替えるとマッチのハイライトが即座に更新されます。

キャプチャグループは表示されますか?

はい。各マッチについて、ツールがキャプチャグループを分解表示するので、パターンの各部分が正しいテキストをつかんでいるか確認できます。多すぎ・少なすぎをつかむグループを簡単に見つけられます。

なぜテスターが時々遅く感じるのですか?

ネストした量指定子を持つパターンは壊滅的なバックトラッキングを引き起こすことがあり、大きな入力では遅くなります。ページが固まったように見えたら、テキストを増やすのではなくパターンを単純化し、小さなサンプルで試してください。

訪問間で作業を保存しますか?

いいえ。アカウントもサーバー側の履歴もありません。パターンとテキストは開いているタブ内にのみ存在するので、残したいものは閉じる前にコピーしてください。これによりツールは設計上、完全にプライベートに保たれます。

関連ツール

このツールをあなたのサイトに設置

どんなウェブサイトやブログにも無料で埋め込めます。下のコードをコピーしてください。ここと同じようにツールが読み込まれ、訪問者のブラウザ内で引き続きプライベートに動作します。