正規表現テスター

自分のテキストに対して正規表現を試し、各マッチの位置とキャプチャグループを一覧表示します。置換モードで書き換え、抽出モードでグループを行ごとに取り出せます。

🌍 世界中で利用可能 🔒 プライバシー重視 ⚡ 即時変換 💯 無制限
Advertisement

パターンを入力してテキストを貼り付けると、すべてのマッチが位置とキャプチャグループとともに強調表示されます。置換モードに切り替えればテキストを書き換えられ、抽出モードでは1つのキャプチャグループを行ごとに取り出せます。コードに組み込む前にパターンを確認する最短の方法です。

エンジンはブラウザが使うJavaScriptの正規表現なので、名前付きグループ、先読み、最短一致の量指定子を含め、Nodeやブラウザのコンソールで得られる結果と同じになります。全体検索、大文字小文字を区別しない、複数行、dot-all、Unicodeのフラグが使えます。暴走したパターンはタブを固まらせずに停止します。

正規表現をテストする方法

1

パターンを入力し、フラグを設定します

2

テスト対象のテキストを貼り付けます

3

マッチを確認するか、置換・抽出モードを使います

よくある質問

どの正規表現エンジンが使われますか?

JavaScript(ECMAScript)で、お使いのブラウザやNode.jsと同じエンジンです。PCRE、Python、Java向けに書かれたパターンは多少の修正が必要なことがあります。独占的量指定子や再帰はこのエンジンの機能ではありません。

パターンが停止したのはなぜですか?

壊滅的なバックトラッキングが原因で、長い非マッチ文字列に対する(a+)+のような入れ子の量指定子でよく起こります。このツールはタブを守るため一定の反復回数で処理を止めます。パターンを単純化するか、位置を固定してください。

テキストを置換するには?

置換モードに切り替えて置換文字列を入力します。$1、$2、$<name>でキャプチャグループを挿入できるので、日付の書式変更、フィールドの入れ替え、ログの整形に使えます。

抽出モードは何をしますか?

マッチ全体ではなく、1つのキャプチャグループを1行ずつ出力します。長いテキストからメールアドレス、URL、IDを取り出すときにまさに便利な形です。

パターンで改行は扱えますか?

複数行またはdot-allのフラグを有効にした場合だけです。既定では.は改行にマッチしないため、1行では動くパターンが段落では失敗するよくある原因になります。

テキストはアップロードされますか?

いいえ。マッチングは端末内で実行されるので、実際のログデータや顧客情報を含むテキストでも安心して使えます。

Advertisement

概要

入力テキスト
複数ファイルいいえ
実行場所ブラウザ内で実行 - ファイルはアップロードされません
オフラインでも動作はい — ページを読み込んだ後
料金無料・登録不要・透かしなし

変換が静かに壊れるところ

変換のバグの多くは構文ではなく意味の問題です。郵便番号のCSV列は、表計算ソフトが数値だと推測した瞬間に先頭のゼロを失います。長いIDは浮動小数点の精度を超えてしまいます。日付は、日が先か月が先かによって意味が変わります。JSONのキーには順序がありませんが、配列にはあります。キーを並べ替えるツールは何も変えませんが、配列を並べ替えるツールはデータを変えてしまいます。Unicodeも落とし穴です。テキストはUTF-8やUTF-16、あるいはBOM付きで届くことがあり、推測を誤ったデコーダーはアクセント付きの文字を文字化けに変えてしまいます。変換を信用する前に、最初と最後の行、先頭にゼロがあるフィールド、引用符・カンマ・改行を含むフィールドを抜き取り検査してください。

データ形式の選び方

JSONは、APIが返すものやプログラムが読み取るものの既定の選択です。入れ子構造、数値、真偽値、nullを自然に扱え、どの言語でもパースできます。CSVはより小さく、表計算ソフトでそのまま開けますが、入れ子を表現する方法がなく、区切り文字、引用符、文字コードに関する共通規格もありません。変換がうまくいかないのはまさにこの点です。XMLは冗長ですが、属性、混在コンテンツ、スキーマを扱えるため、文書形式や既存の連携では今も主流です。YAMLは設定ファイルにとって最も読みやすい形式ですが、空白に敏感で、型の自動変換が意外な結果を生みます(「no」がfalseになったり、1.10のようなバージョンが1.1になったりします)。見た目が最もよいものではなく、利用する側のツールが好む形式を選んでください。