正規表現

//g

テスト文字列

よく使うパターン

Regexチートシート

文字

. 任意の1文字(改行を除く)
\d 数字 [0-9]
\w 単語文字 [a-zA-Z0-9_]
\s 空白文字
\b 単語境界
[abc] 文字クラス
[^abc] 否定文字クラス

量指定子

* 0回以上
+ 1回以上
? 0回または1回
{n} ちょうどn回
{n,m} n回からm回
*? 最短一致(非貪欲)

グループとアンカー

(abc) キャプチャグループ
(?:abc) 非キャプチャグループ
(?<name>abc) 名前付きグループ
a|b 選択(OR)
^ 文字列/行の先頭
$ 文字列/行の末尾

正規表現について

正規表現(regex)は、テキストの検索、照合、抽出、置換に使われる強力なパターンです。ほぼすべてのプログラミング言語でサポートされており、テキスト処理、データ検証、ログ分析、Webスクレイピングに欠かせません。

リアルタイムのマッチハイライト
キャプチャグループの表示
後方参照付きの検索と置換
100%クライアント側処理

正規表現の完全ガイド

無料オンラインRegexテスター

このRegexテスターでは、正規表現を書いてテストし、即時の視覚フィードバックでデバッグできます。テスト文字列内のマッチがリアルタイムでハイライトされ、各マッチの位置、長さ、キャプチャグループも確認できます。メールアドレスの検証、ログファイルの解析、データ抽出など、すぐに使える結果を得られます。

正規表現とは?

正規表現(regexまたはregexp)は、検索パターンを定義する文字列です。1950年代の形式言語理論から発展し、現在ではコンピューティングに欠かせない道具になっています。リテラル文字列ではなくパターンに基づいて、テキストを照合、検索、抽出、置換できます。

たとえば、パターン \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b はメールアドレスにマッチし、^\d{4}-\d{2}-\d{2}$ はYYYY-MM-DD形式の日付を検証します。

正規表現の構文要素

文字クラス

  • . - 任意の1文字にマッチ(改行を除く)
  • \d - 任意の数字 [0-9] にマッチ
  • \w - 単語文字 [a-zA-Z0-9_] にマッチ
  • \s - 空白文字(スペース、タブ、改行)にマッチ
  • [abc] - セット内の任意の文字にマッチ
  • [^abc] - セット内にない任意の文字にマッチ

量指定子

  • * - 0回以上
  • + - 1回以上
  • ? - 0回または1回
  • {n} - ちょうどn回
  • {n,m} - n回からm回
  • *? / +? - 最短一致(非貪欲)

グループと参照

  • (abc) - キャプチャグループ
  • (?:abc) - 非キャプチャグループ
  • (?<name>abc) - 名前付きキャプチャグループ
  • \1 - グループ1への後方参照
  • a|b - 選択(aまたはb)

アンカーと境界

  • ^ - 文字列の先頭(mフラグでは行頭)
  • $ - 文字列の末尾(mフラグでは行末)
  • \b - 単語境界
  • \B - 非単語境界
  • (?=abc) - 肯定先読み
  • (?!abc) - 否定先読み

JavaScript Regexフラグ

フラグ名前説明
gグローバル最初の1件だけでなく、すべてのマッチを検索します
i大文字小文字を区別しない文字の大小を無視してマッチします
m複数行^ と $ が各行の先頭/末尾にマッチします
sDotall(単一行). が改行文字にもマッチします
uUnicodeUnicode対応のマッチを有効にします

Regexテスターの使い方

  1. パターンを入力: パターン入力欄に正規表現を入力します。このツールはJavaScriptの正規表現構文を使用します。
  2. フラグを設定: global(g)、大文字小文字無視(i)、複数行(m)、dotall(s)、unicode(u)などを切り替えてマッチ動作を制御します。
  3. テスト文字列を追加: テスト文字列欄にテキストを入力または貼り付けるか、内蔵サンプルを読み込みます。
  4. マッチを確認: マッチはリアルタイムでハイライトされ、詳細結果に位置、長さ、キャプチャグループが表示されます。
  5. 置換モード: 置換モードを有効にすると、$1、$2などの後方参照を使った正規表現ベースの検索・置換をテストできます。
  6. プリセットを使用: Email、URL、IPアドレス、電話番号などの一般的なパターンをクリックしてすばやく読み込めます。

Regexのよくある利用シーン

フォーム検証: Regexは、メールアドレス、電話番号、郵便番号、クレジットカード番号、日付など、Webフォームのユーザー入力検証で広く使われます。適切な検証パターンにより、不正な形式のデータがシステムへ入るのを防げます。

ログ分析: システム管理者やDevOpsエンジニアは、ログファイルの解析やフィルタリングにRegexを使います。大量のログからタイムスタンプ、エラーコード、IPアドレス、リクエストパスを抽出できます。

データ抽出とWebスクレイピング: Regexは、非構造化テキストから構造化データを抽出するのに役立ちます。商品ページから価格を抜き出したり、HTMLからリンクを抽出したり、不規則なCSVを解析したりできます。

コードエディターでの検索と置換: VS Code、Sublime Text、IntelliJなど多くのエディターは検索・置換でRegexをサポートしています。変数名の変更、関数シグネチャの変更、コード整形などの強力なリファクタリングが可能です。

URLルーティング: Express.js、Django、RailsなどのWebフレームワークでは、URLルート定義にRegexパターンを使い、リクエストパスをコントローラーアクションへ対応させ、パラメータを抽出します。

データクリーニング: 余分な空白の削除、電話番号形式の統一、HTMLタグの除去、日付形式の変換など、Regex置換で乱雑なデータセットを整形・正規化できます。

このRegexテスターを使う理由

即時の視覚フィードバック: パターンを入力すると、テスト文字列内のマッチがその場でハイライトされます。フォーム送信やボタン操作は不要です。

詳細なマッチ情報: 各マッチの位置、長さ、キャプチャグループ、名前付きグループを整理された画面で確認できます。

置換モード: $1、$2、$&などの後方参照を使った検索・置換を、コードに適用する前にテストできます。

内蔵パターンライブラリ: メール、URL、IPアドレス、日付、16進カラー、HTMLタグ、電話番号などの一般的なパターンをすばやく読み込めます。

チートシート: 包括的なRegexリファレンスがツール内にあるため、別ページを開かずに確認できます。

100%プライバシー: すべてのRegex処理はブラウザ内で行われます。データはどのサーバーにも送信されず、パターンとテスト文字列は完全にプライベートです。

こんな人に最適

  • フォーム検証を行うWeb開発者
  • データ解析を行うバックエンド開発者
  • ログを分析するDevOpsエンジニア
  • データセットを整形するデータサイエンティスト
  • テストパターンを書くQA担当者
  • Regexを学習中の学生
  • ログをフィルタリングするシステム管理者
  • パターン検出を行うセキュリティ分析者
  • 大量テキストを編集するコンテンツ担当者
  • ペイロードを検証するAPI開発者
  • URLを解析するSEO担当者
  • テキストパターンを扱うすべての人

100%プライバシー保護

Regex処理はすべてJavaScriptを使ってWebブラウザ内で実行されます。パターン、テスト文字列、置換操作がサーバーへアップロード、データベース保存、ログ記録、第三者送信されることはありません。すべて端末上で完結します。