正規表現テスター

正規表現とテスト文字列を下に入力してください。マッチはリアルタイムでハイライトされます。JavaScript regexフラグに対応。すべての処理はブラウザ内でローカルに行われます。

/ / g
コピーしました!
#位置一致グループ

正規表現フラグ

フラグ説明
gグローバル - 最初だけでなくすべてのマッチを検索
i大文字小文字を区別しないマッチング
m複数行 - ^$が行の境界にマッチ
sDotall - .が改行にもマッチ
uUnicode - 完全なUnicodeマッチングを有効化
y直前の一致が終わった位置でのみ一致する

一致は開始位置と、名前付きを含むすべてのキャプチャグループとともに並びます。実際に確かめたいのはたいていそこです。置換モードは同じパターンを標準の置換構文に通すため、$1 や $ はご自身のコードでの挙動とまったく同じになります。一致数には上限を設けています。あらゆる位置で一致するパターンでは、ページが描ける以上の行数の表ができてしまうからです。

またデータを手作業で整えていませんか

毎回ブラウザーのタブで直しているペイロードは、本来コードの仕事です。当社はシステム間でデータを運ぶ連携、パーサー、サービスを構築し、途中で静かにデータを壊しているものを修復します。

何を移しているか教えてください

よくある質問

パターンが最初の一致しか見つけないのはなぜですか
g フラグがオフだからです。これがないと正規表現は設計どおり最初の一致で止まります。妥当性の確認ではそれが望ましく、文書を走査するときは望ましくありません。オンにすればすべての一致が並びます。
名前付きグループには対応していますか
はい。番号付きと名前付きのどちらのグループも、一致ごとに表へ出ます。(?<year>\d{4}) を使うパターンなら、グループ 1 と並んで year が表示されます。実際に確かめたいのはたいていそこで、パターンが一致するかどうかそのものではありません。
置換モードは $1 をどう扱いますか
ご自身のコードとまったく同じです。パターンと置換文字列を言語自身の置換関数に渡しているからです。$1 と $<name> はグループを指し、$& は一致全体、$$ はドル記号そのものになります。
一致の列挙が途中で止まったのはなぜですか
上限があります。あらゆる位置で一致するパターンは 1 文字につき 1 行を生み、表は役に立つ前にとうに扱えない大きさになるからです。この上限に当たったときは、たいていパターンが意図より広くなっています。
パターンのせいでページが固まります。なぜですか
破滅的なバックトラックを起こすパターンがあります。(a+)+ のような入れ子の量指定子は、惜しいところまで一致する文字列に対して指数時間かかることがあります。これはこのページではなくパターンの性質で、知っておく価値があります。同じパターンはご自身のサーバーでも同じことをするからです。