正規表現テスター
正規表現とテスト文字列を下に入力してください。マッチはリアルタイムでハイライトされます。JavaScript regexフラグに対応。すべての処理はブラウザ内でローカルに行われます。
/
/
g
コピーしました!
| # | 位置 | 一致 | グループ |
|---|
正規表現フラグ
| フラグ | 説明 |
|---|---|
g | グローバル - 最初だけでなくすべてのマッチを検索 |
i | 大文字小文字を区別しないマッチング |
m | 複数行 - ^と$が行の境界にマッチ |
s | Dotall - .が改行にもマッチ |
u | Unicode - 完全なUnicodeマッチングを有効化 |
y | 直前の一致が終わった位置でのみ一致する |
一致は開始位置と、名前付きを含むすべてのキャプチャグループとともに並びます。実際に確かめたいのはたいていそこです。置換モードは同じパターンを標準の置換構文に通すため、$1 や $
またデータを手作業で整えていませんか
毎回ブラウザーのタブで直しているペイロードは、本来コードの仕事です。当社はシステム間でデータを運ぶ連携、パーサー、サービスを構築し、途中で静かにデータを壊しているものを修復します。
何を移しているか教えてくださいよくある質問
パターンが最初の一致しか見つけないのはなぜですか
g フラグがオフだからです。これがないと正規表現は設計どおり最初の一致で止まります。妥当性の確認ではそれが望ましく、文書を走査するときは望ましくありません。オンにすればすべての一致が並びます。
名前付きグループには対応していますか
はい。番号付きと名前付きのどちらのグループも、一致ごとに表へ出ます。(?<year>\d{4}) を使うパターンなら、グループ 1 と並んで year が表示されます。実際に確かめたいのはたいていそこで、パターンが一致するかどうかそのものではありません。
置換モードは $1 をどう扱いますか
ご自身のコードとまったく同じです。パターンと置換文字列を言語自身の置換関数に渡しているからです。$1 と $<name> はグループを指し、$& は一致全体、$$ はドル記号そのものになります。
一致の列挙が途中で止まったのはなぜですか
上限があります。あらゆる位置で一致するパターンは 1 文字につき 1 行を生み、表は役に立つ前にとうに扱えない大きさになるからです。この上限に当たったときは、たいていパターンが意図より広くなっています。
パターンのせいでページが固まります。なぜですか
破滅的なバックトラックを起こすパターンがあります。(a+)+ のような入れ子の量指定子は、惜しいところまで一致する文字列に対して指数時間かかることがあります。これはこのページではなくパターンの性質で、知っておく価値があります。同じパターンはご自身のサーバーでも同じことをするからです。