ShibaHubShibaHub
開発者向け

正規表現テスター

正規表現パターンとテスト文字列を入力するだけで、マッチした箇所がハイライト表示され、キャプチャグループの内容もすぐ確認できます。すべてブラウザ内で処理。

最終更新:2026年9月9日 / 運営:sesebox(運営者情報)

正規表現パターンJavaScriptの正規表現構文
//g
フラグ
テスト文字列ブラウザ内のみで処理
マッチ数
4件
Hello World, this is a Regex Test.
マッチ1(0文字目)
Hello
グループ1:H
グループ2:ello
マッチ2(6文字目)
World
グループ1:W
グループ2:orld
マッチ3(23文字目)
Regex
グループ1:R
グループ2:egex
マッチ4(29文字目)
Test
グループ1:T
グループ2:est

フラグの意味:g=文字列全体からすべてのマッチを検索(オフの場合は最初の1件のみ)/i=大文字・小文字を区別しない/m= ^ と $ が各行の先頭・末尾にもマッチする/s= . が改行文字にもマッチする。キャプチャグループ(( )で囲んだ部分)を使うと、マッチした文字列の一部だけを取り出せます。入力したパターンや文字列はブラウザ内のみで処理され、サーバーに送信されることはありません。複雑な正規表現(特に繰り返しの入れ子)は、長い文字列に対して処理が重くなる場合があります。

正規表現テスターの使い方と、フラグ・キャプチャグループの読み方

① このツールの使い方

  • •1. 正規表現パターンを入力する:スラッシュ(/ /)の中に、探したいパターンを書きます。
  • •2. フラグを選ぶ:g・i・m・sの中から必要なものをオンにします(詳しくは②)。
  • •3. テスト文字列を入力する:パターンを試したい実際の文章を貼り付けます。

入力すると同時に、マッチした部分がテスト文字列内で黄色くハイライトされ、マッチ数とマッチした各箇所の詳細(キャプチャグループの中身を含む)が一覧で表示されます。「メールアドレス」「郵便番号」などのプリセットから、よく使うパターンをワンタップで試すこともできます。

② フラグ(g・i・m・s)の意味

フラグ意味
g文字列全体からすべてのマッチを検索する(オフだと最初の1件だけで止まる)
i大文字・小文字を区別しない
m複数行モード。^ と $ が各行の先頭・末尾にもマッチするようになる
s「.」(ドット)が改行文字にもマッチするようになる

たとえば1行に1件しかマッチしないはずなのに複数マッチしてしまう場合や、逆に複数あるはずなのに1件しか見つからない場合は、まずgフラグがオンになっているか確認してみてください。

③ キャプチャグループとは

パターンの中で( )で囲んだ部分を「キャプチャグループ」と呼び、マッチした文字列全体の中から、その一部分だけを個別に取り出すことができます。

たとえば郵便番号のパターン(\d{3})-(\d{4})を「123-4567」に対して実行すると、マッチ全体は「123-4567」、グループ1は「123」、グループ2は「4567」として個別に確認できます。名前付きグループ((?<name>...))を使った場合は、名前付きグループの結果としても表示されます。

④ よく使うパターンの例

  • •メールアドレス:[\w.+-]+@[\w-]+\.[\w.-]+
  • •郵便番号:\d{3}-\d{4}
  • •URL抽出:https?://[^\s]+
  • •半角英数字のみか判定:^[a-zA-Z0-9]+$(^と$で文字列全体を範囲指定)

⑤ マッチしないときの確認ポイント

まずパターン欄の下にエラーメッセージが出ていないか確認してください。構文自体に誤りがある場合はそこで表示されます。エラーが出ていないのにマッチしない場合は、大文字・小文字の違いはiフラグ、複数行にまたがるパターンはmやsフラグの有無で挙動が変わるため、フラグの設定を見直してみてください。

正規表現の基本的な書き方(文字クラス・量指定子・アンカーなど)は正規表現の基礎を解説した記事にまとめています。

⑥ 実務での使いどころ

正規表現は、フォームの入力チェック(メールアドレスや電話番号の形式確認)、ログファイルから特定のパターンだけを抜き出す作業、エディタでの一括置換など、さまざまな場面で使われます。ただし本番のコードにいきなり複雑なパターンを書いて動かすのはリスクが高く、意図しない文字列までマッチしてしまったり、逆に想定していたパターンにマッチしなかったりすることがよくあります。このツールで実際のデータに近いテスト文字列を用意し、パターンが期待通りに動くかを事前に確認してからコードに組み込むと、手戻りを減らせます。

正規表現には「貪欲マッチ」という性質もあり、たとえば<.+>のようなパターンはできるだけ長くマッチしようとするため、複数のタグを含む文字列に対して意図しない範囲までマッチしてしまうことがあります(この場合は<.+?>のように「?」を付けて最短マッチにすることで防げます)。また、あまりに複雑な正規表現(特に量指定子が入れ子になったパターン)は、長い文字列に対して処理が急激に重くなる場合があるため、シンプルなパターンに分割できないか検討するのも実務では有効な対策です。

⑦ エスケープが必要な特殊文字

正規表現では、. * + ? ( ) [ ] { } | ^ $ \といった記号が特別な意味を持つ「メタ文字」として扱われます。これらの文字そのものを検索したい場合は、直前にバックスラッシュを置いてエスケープする必要があります。たとえば価格の「1,000円」から小数点付きの金額(1,234.56円のような表記)を探したい場合、ドットは「任意の1文字」を意味してしまうため、実際のピリオドを表したいなら\.と書く必要があります。エスケープを忘れると、意図しない文字までマッチしてしまう典型的なミスの原因になります。

⑧ 量指定子(繰り返しの指定)の使い分け

記号意味
*直前の文字が0回以上(無くてもよい)
+直前の文字が1回以上(最低1回は必要)
?直前の文字が0回または1回(あってもなくてもよい)
{n,m}直前の文字がn回以上m回以下

これらを組み合わせることで、電話番号のようにハイフンがあってもなくても対応できるパターン(\d{2,4}-?\d{2,4}-?\d{4}のような形)を作れます。プリセットのパターンを実際のテスト文字列でいろいろ試しながら、量指定子の挙動を体感的に理解しておくと、自分でパターンを組み立てる際の応用が利きやすくなります。

⑨ アンカー(^と$)で文字列全体を検証する

^は「文字列の先頭」、$は「文字列の末尾」を表すアンカー(位置を示す記号)です。この2つで検索パターン全体を囲むと、「文字列の一部にマッチするか」ではなく「文字列全体がこのパターンに完全に一致するか」を判定できます。たとえばユーザー名の入力欄で「半角英数字のみ許可」としたい場合、アンカーなしの[a-zA-Z0-9]+だと文字列の一部にでも英数字が含まれていればマッチしてしまいますが、^[a-zA-Z0-9]+$とアンカーで囲めば、記号や日本語が1文字でも混ざっている入力は弾かれます。フォームのバリデーション(入力チェック)を実装する際は、このアンカーの有無で挙動が大きく変わる点に、十分注意してください。テストケースを複数用意して事前に検証しておくと、本番環境でのバグを未然に防ぎやすくなります。

よくある質問
正規表現テスターはどんな時に使いますか?

メールアドレスや郵便番号などのパターンが入力文字列に正しくマッチするかを確認したり、JavaScriptのコードに書く前に正規表現の動作を試したりするのに使えます。マッチした箇所はテスト文字列内でハイライト表示されます。

フラグ(g・i・m・s)はどういう意味ですか?

g=文字列全体からすべてのマッチを検索します(オフの場合は最初の1件のみ)。i=大文字・小文字を区別しません。m=複数行モードで、^ と $ が各行の先頭・末尾にもマッチするようになります。s= . (ドット)が改行文字にもマッチするようになります。

キャプチャグループとは何ですか?

パターンの中で ( ) で囲んだ部分のことで、マッチした文字列の一部だけを取り出すことができます。例えば (\d{3})-(\d{4}) というパターンなら、ハイフンの前後の数字をそれぞれグループ1・グループ2として個別に確認できます。

マッチしない場合、何を確認すればいいですか?

まずパターンを / / で囲んだときにエラーが出ていないか確認してください(エラーが出ている場合はパターンの構文に誤りがあります)。次に、大文字・小文字の違いはiフラグで、改行を含む文字列は m や s フラグで挙動が変わるため、フラグの設定も見直してみてください。

入力したパターンやテスト文字列はサーバーに送信されますか?

いいえ。正規表現の処理はすべてブラウザ内のJavaScriptで行われ、サーバーに送信されることはありません。

あわせて使う道具開発者向け
関連コラム
開発者向け の道具をもっと見るJSON整形・Base64・パスワード生成など 36個見る