正規表現テスター
ライブマッチハイライトとキャプチャグループで正規表現をテスト。
正規表現テスターの使い方
よく使う正規表現パターン
JavaScriptの正規表現フレーバー
このテスターはJavaScriptの組み込みRegExpエンジンを使用しています——ブラウザやNode.jsが使用するのと同じエンジンです。ここで動作するパターンはJavaScriptコードで直接動作します。なお、JavaScriptは古いブラウザではルックビハインドをサポートしておらず、名前付きキャプチャグループはES2018以降が必要で、s(dotall)フラグもES2018以降が必要です。
バックエンド開発者は、サーバーサイドコードに埋め込む前にメールアドレス、電話番号、PINコードのフォームバリデーションパターンをテストします。フロントエンドエンジニアはIDEに切り替えることなく、ブラウザ内で直接入力のサニタイズロジックをプロトタイプします。セキュリティ研究者は大きなログ文字列からIPアドレス、ユーザーエージェント、またはエラーコードを抽出するためにログパターンを分析するために使用します。データエンジニアはデータベースに読み込む前に、CSVやAPIレスポンスの半構造化テキストを解析する正規表現パターンを書きます。正規表現を学ぶ学生は実際の文字列に対してパターンを試し、iやmのようなフラグが動作をどのように変えるかを即座に確認します。
JavaScriptは正のルックアヘッド((?=...))と負のルックアヘッド((?!...))、および正のルックビハインド((?<=...))と負のルックビハインド((?<!...))をサポートしています。ルックビハインドはES2018以降が必要ですが、すべてのモダンブラウザでサポートされています。例:(?<=₹)\d+は₹記号の前にある場合のみ数値にマッチします——通貨記号自体をキャプチャせずに財務テキストから金額を抽出するのに便利です。プロダクションで使用する前に、ルックアラウンドパターンをここでテストして期待通りに動作することを確認してください。
最もシンプルなパターンから始めて徐々に構築してください。パターンがマッチしない場合は次を確認してください:エスケープされていない特殊文字(生の.は任意の文字にマッチします——リテラルのピリオドには\.を使用);^と$で行の境界にアンカーしている場合にmフラグが欠けている;欲張りな量指定子と遅延量指定子の違いで期待以上に飲み込んでいる。名前付きキャプチャグループ((?<year>\d{4}))を使用して複雑なパターンを自己文書化します。
- 上のフィールドに正規表現パターンを入力します(スラッシュなし)。
- 必要に応じてフラグを切り替えます:iで大文字小文字を無視、mで複数行、sでdotall。
- 下のテキストエリアにテスト文字列を貼り付けます。
- マッチ箇所が即座に黄色でハイライトされます。マッチリストには各マッチ、その位置、およびキャプチャグループが表示されます。
- \d+ — 1桁以上の数字
- [a-zA-Z]+ — 1文字以上のアルファベット
- \b\w+\b — 単語全体
- ^.+$ — 空でない行全体(mフラグあり)
- [\w.+-]+@[\w-]+\.[a-z]+ — 基本的なメール
- https?://[^\s]+ — URL
- \d{3}-\d{4} — 電話番号パターン
よくある質問
- What is a regular expression?
- A regular expression (regex) is a pattern that describes a set of strings. It's used to search, match, extract, validate, and replace text. For example, /\d+/ matches one or more digits, and /^[a-z]+$/i matches strings containing only letters.
- What flags are supported?
- This tester supports three flags: i (case insensitive — A matches a), m (multiline — ^ and $ match line boundaries, not just string boundaries), and s (dotall — . matches newlines too). The g (global) flag is always on so all matches are found.
- How do I match a literal dot or parenthesis?
- Escape it with a backslash: \. matches a literal dot, \( matches a literal opening parenthesis. In a regex pattern, characters like . * + ? [ ] { } ( ) ^ $ | \ have special meaning and must be escaped if you want them literally.
- How do capture groups work?
- Wrap part of your pattern in parentheses to create a capture group. For example, /(\d{4})-(\d{2})-(\d{2})/ matches a date and captures year, month, and day as separate groups. The match list shows captured groups in the Groups column.
- What's the difference between greedy and lazy matching?
- Greedy quantifiers (*, +, ?) match as much as possible. Lazy quantifiers (*?, +?, ??) match as little as possible. For example, /<.+>/ on '<b>text</b>' matches the whole thing. /<.+?>/ matches '<b>' and '</b>' separately.
関連ツール
- JSON Formatter, Validator & Repair Tool
Format, minify, validate, and repair JSON instantly in your browser. Sort keys alphabetically, auto-format on paste, download as file, escape/unescape strings — free, no sign-up, 100% client-side.
- QRコード生成
URL、テキスト、Wi-FiなどのQRコードを生成。PNGでダウンロード可能。
- パスワード生成
カスタム長と文字セットで強力なランダムパスワードを生成。
- Base64 エンコーダー / デコーダー
テキストをBase64にエンコード、または逆にデコード。
- URLエンコーダー / デコーダー
パーセントエンコーディングでURLとクエリ文字列をエンコードまたはデコード。