確かめられること
パターンが、思ったとおりのものだけにマッチしているかどうかです。実際のサンプル(ログの行、メール、商品コード)を貼り付ければ、パターンを直すたびにマッチ、位置、キャプチャグループが更新されます。g、i、m、s、uのフラグを切り替えたり、$1形式の参照を使った置換をコードに入れる前に試したりできます。
正規表現をテキストに当てて、入力しながら結果を確認。マッチはハイライトされ、キャプチャグループも一覧に。フラグの切り替えやチートシートもあります。
マッチなし
パターンとテキストを入力すると、マッチが表示されます
パターンが、思ったとおりのものだけにマッチしているかどうかです。実際のサンプル(ログの行、メール、商品コード)を貼り付ければ、パターンを直すたびにマッチ、位置、キャプチャグループが更新されます。g、i、m、s、uのフラグを切り替えたり、$1形式の参照を使った置換をコードに入れる前に試したりできます。
エンジンはブラウザのJavaScriptのものなので、後読み、名前付きグループ、Unicodeプロパティのエスケープ(\p{Script=Han}で漢字など)は、Node.jsや最近のブラウザと同じように動きます。PCREだけの機能(強欲な量指定子、再帰)は使えません。壊滅的なバックトラックを起こすパターンは、時間制限付きの別のワーカーで実行されるので、タブが固まる前に止まります。
量指定子は、初期設定では最長一致(貪欲)で、できるだけ長くマッチします。「<b>hello</b>」に対してパターン <.*> を使うと、「<b>hello</b>」全体にマッチします。.* がテキストの最後の > まで進むためです。
?を付けると最短一致(怠惰)になり、できるだけ短くマッチします。同じテキストに <.*?> を使うと「<b>」だけにマッチし(最初の > で止まります)、gフラグで検索すると2つ目のマッチとして「</b>」が見つかります。HTMLやJSONのような構造のあるテキストから一部を取り出すときに欠かせない考え方です。
組み込みのクラスとして、\dは数字(0〜9)、\wは単語の文字(英字、数字、アンダースコア)、\sは空白(スペース、タブ、改行)にマッチします。大文字のもの(\D、\W、\S)は、その逆にマッチします。
自分で作るクラスには角かっこを使います。[a-z]は英小文字、[^0-9]は数字以外、[A-Za-z0-9_]は\wと同じ意味です。範囲は連続したUnicodeのコードポイントに使えるので、[ぁ-ん]でひらがな、[ァ-ヶ]でカタカナにマッチさせることもできます。
丸かっこ()はキャプチャグループを作り、マッチの特定の部分を取り出します。パターン (\d{4})-(\d{2})-(\d{2}) なら、グループ1が年、グループ2が月、グループ3が日を取り出します。
非キャプチャグループ (?:...) は、取り出さずにまとめるだけのグループで、余分なキャプチャを作らずにグループに量指定子をかけたいときに便利です。名前付きグループ (?<name>...) を使うと、コードの中でキャプチャが読みやすくなります。後方参照は同じテキストにもう一度マッチします。(\w+) \1 なら「the the」のような重複した単語が見つかり、置換では $1(または $<name>)でグループが取り出した内容を挿入できます。
先読み (?=...) は、あとにパターンが続く位置に、そのパターンを消費せずにマッチします。たとえば \d+(?=円) は、あとに「円」が続く数字だけにマッチします。否定先読み (?!...) は、パターンが続かない場合にマッチします。
後読み (?<=...) は、前にパターンがある位置にマッチします。(?<=\$)\d+ は、$のあとの数字にマッチします。最近のJavaScriptのエンジンは、先読みも後読みも対応しています。
入力欄に正規表現のパターンを入力します。フラグ(g、i、m、s、u)は、ツールバーのチップでオン・オフを切り替えます。
大きなテキスト欄に、テストしたいテキストを入力します。マッチした部分は、入力しながらリアルタイムでハイライトされます。
結果のパネルには、マッチの数、各マッチとそのキャプチャグループ、開始・終了の位置が表示されます。正規表現を直して、結果を絞り込みましょう。
正規表現とテスト用のテキストを入力すると、入力しながらマッチがハイライトされ、キャプチャグループ、位置、かかった時間も表示されます。
置換を試したり、パターンの各部分の説明を読んだり、JavaScript、Python、Go、Java、PHPのコードとしてコピーしたりできます。バックトラックが止まらなくなるパターンは、ページを固まらせる前に止めます。
かんたん・すばやいファイルやデータが端末から出ることはありません。処理はすべてブラウザ内で行われます。
テスト用のテキストは、ログやお客さまのメールなど、実際のデータであることがよくあります。それでも、ブラウザから出ることはありません。
ブラウザ内で完結正規表現テスターについて知っておきたいこと