正規表現テスター - 正規表現テスト オンライン
正規表現をリアルタイムでテスト・デバッグ。キャプチャグループ、シンタックスハイライト、よく使うパターンライブラリとチートシート付き。
よくある質問
正規表現(regex)とは何ですか?
正規表現(regex)は、検索パターンを定義する文字列です。文字列内のパターンマッチングに使用され、バリデーション(メール、電話番号)、検索と置換、データ抽出、テキスト解析などの操作を可能にします。正規表現は、ほぼすべてのプログラミング言語とテキストエディタでサポートされています。
正規表現のフラグ(g, i, m, s, u)は何を意味しますか?
正規表現のフラグは、パターンマッチングの方法を変更します。'g'(グローバル)は最初の一致だけでなく、すべての一致を見つけます。'i'(大文字小文字を区別しない)は文字の大小を無視します。'm'(複数行)は^と$を文字列の開始/終了ではなく行の境界に一致させます。's'(dotall)は.を改行文字に一致させます。'u'(Unicode)はサロゲートペアを含む完全なUnicodeサポートを有効にします。
最も一般的に使用される正規表現パターンは何ですか?
一般的なパターンには、メール検証(^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$)、URLマッチング(https?://[\w.-]+)、電話番号(\d{3}-\d{3}-\d{4})、IPアドレス(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})、16進カラー(#[a-fA-F0-9]{6})があります。ワンクリックで挿入するには、ツールの一般パターンライブラリを使用してください。
キャプチャグループとは何ですか?どのように使用しますか?
キャプチャグループは括弧()で定義され、一致の特定の部分を抽出します。例えば、'(\d{3})-(\d{4})'では、グループ1が最初の3桁を、グループ2が最後の4桁をキャプチャします。抽出なしでグループ化が必要な場合は(?:...)を使用します。名前付きグループ(?<name>...)は参照を読みやすくします。置換では、$1、$2、または$<name>を使用してキャプチャした値を参照します。
この正規表現テスターは安全ですか?
はい。このツールはJavaScriptの組み込みRegExpエンジンを使用して、100%ブラウザで実行されます。パターンやテスト文字列がサーバーに送信されることはありません。データは完全にあなたのデバイス上でプライベートに保たれます。また、複雑なパターンによるブラウザのフリーズを防ぐタイムアウト保護(ReDoS保護)も含まれています。
正規表現パターンをテストするためのベストプラクティスは何ですか?
シンプルに始めて、徐々に複雑さを追加してください。一致する例と一致しない例の両方でテストしてください。すべての一致を確認するには'g'フラグを使用してください。エッジケースを確認してください:空の文字列、特殊文字、境界条件。検証パターンでは、無効な入力もテストしてください。キャプチャした値が不要な場合は、非キャプチャグループ(?:...)を使用してください。パフォーマンスの問題を引き起こす可能性があるため、可能な限り貪欲な量指定子(.*, .+)は避けてください。
コード例
// Basic regex matching
const pattern = /\d{3}-\d{4}/g;
const text = "Call 555-1234 or 987-6543";
const matches = text.match(pattern);
console.log(matches); // ["555-1234", "987-6543"]
// Using RegExp constructor with flags
const regex = new RegExp("hello", "gi");
const result = "Hello HELLO hello".match(regex);
console.log(result); // ["Hello", "HELLO", "hello"]
// Capture groups
const emailRegex = /([\w.-]+)@([\w.-]+)/;
const email = "user@example.com";
const [, username, domain] = email.match(emailRegex);
console.log(username, domain); // "user" "example.com"
// Replace with capture groups
const formatted = "2026-02-01".replace(/(\d{4})-(\d{2})-(\d{2})/, "$2/$3/$1");
console.log(formatted); // "02/01/2026"