正規表現を入力するとテキスト内のマッチ箇所をリアルタイムでハイライト表示します。フラグ切替・置換プレビュー・キャプチャグループ確認に対応。スニペット集からよく使うパターンをワンクリック挿入できます。
🔍 正規表現
/
/
⚠️ 処理時間が長すぎたため中断しました。パターンを見直してください。
フラグ:
📚 スニペット集(ワンクリック挿入)
📧 Web・メール
🇯🇵 日本語
🔢 数値・日付
🔑 その他
📄 テスト文字列
🎯 マッチ結果
🔄 置換プレビュー
- 正規表現(Regular Expression / regex)とは
- 正規表現は、文字列内のパターンを記述するための記法です。テキストの検索・置換・バリデーション(入力値の検証)に使われ、JavaScriptをはじめPython、PHP、Java、Go、Ruby、シェルスクリプトなど多くのプログラミング環境で共通して利用できます。エディタ(VS Code、Sublime Text)やコマンドラインツール(grep、sed)にも正規表現機能が組み込まれており、プログラマー以外の職種でもテキスト処理に活用されています。
- JavaScriptでの正規表現の書き方
- JavaScriptでは
/パターン/フラグのリテラル形式と、new RegExp('パターン', 'フラグ')のコンストラクタ形式の2通りで正規表現を作成できます。リテラル形式はコード内に直接記述する場合に便利で、コンストラクタ形式は動的にパターンを組み立てる場合に使用します。String.prototype.match()、.replace()、.search()、.split()などの文字列メソッドと組み合わせて使います。
- 基本メタ文字
\d:数字(0-9)。\D:数字以外。\w:英数字+アンダースコア([a-zA-Z0-9_])。\W:\w以外。\s:空白文字(スペース、タブ、改行など)。\S:空白以外。.:改行以外の任意の1文字(sフラグで改行にもマッチ)。\\:バックスラッシュ自体のエスケープ。- 量指定子(Quantifiers)
*:0回以上の繰り返し。+:1回以上の繰り返し。?:0回または1回(オプション)。{n}:ちょうどn回。{n,}:n回以上。{n,m}:n回以上m回以下。デフォルトは貪欲マッチ(最長一致)で、量指定子の後に?を付けると非貪欲(最短一致)になります。例:.*?は最短マッチ。- アンカーと位置指定
^:行頭(mフラグで各行の先頭に対応)。$:行末(mフラグで各行の末尾に対応)。\b:単語の境界(英単語の開始・終了位置)。\B:単語の境界以外。- 先読み・後読みアサーション(Lookahead / Lookbehind)
(?=...):肯定先読み(直後にパターンが続く位置にマッチ)。(?!...):否定先読み(直後にパターンが続かない位置にマッチ)。(?<=...):肯定後読み(直前にパターンがある位置にマッチ)。(?<!...):否定後読み(直前にパターンがない位置にマッチ)。先読み・後読みは「マッチする位置」を指定するだけで、マッチ結果にはその文字列自体は含まれません。パスワード強度チェックの(?=.*[A-Z])(大文字が含まれること)は肯定先読みの典型的な使用例です。
- 文字クラス(Character Classes)
[abc]:a, b, cのいずれか1文字。[a-z]:aからzの範囲。[^abc]:a, b, c以外の1文字(否定文字クラス)。[a-zA-Z0-9]:英数字。文字クラス内ではほとんどのメタ文字はリテラルとして扱われますが、-(範囲)、](閉じ括弧)、\(エスケープ)、^(先頭の場合は否定)は特別な意味を持ちます。- グルーピングとキャプチャ
(...):キャプチャグループ。マッチした部分を記憶し、$1,$2で後方参照できます。(?:...):非キャプチャグループ。グルーピングのみ行い、キャプチャはしません。(?<name>...):名前付きキャプチャグループ。$<name>で参照可能。名前付きグループはコードの可読性を大幅に向上させます。- OR(選択)
|(パイプ)は選択を表し、左右いずれかのパターンにマッチします。例:cat|dogは "cat" または "dog" にマッチ。グルーピングと組み合わせると(http|https):\/\/のように使えます。
- ひらがな・カタカナ・漢字のUnicodeレンジ
- 日本語の正規表現では、Unicode範囲指定が不可欠です。主な範囲:ひらがな
[\u3040-\u309F](「ぁ」〜「ゟ」)。全角カタカナ[\u30A0-\u30FF](「゠」〜「ヿ」)。漢字(CJK統合漢字)[\u4E00-\u9FFF]。CJK互換漢字[\uF900-\uFAFF]。全角英数・記号[\uFF01-\uFF5E]。半角カタカナ[\uFF65-\uFF9F]。uフラグを有効にするとサロゲートペア(絵文字や一部の漢字)も正しく扱えます。 - 電話番号・郵便番号のバリデーション
- 日本の電話番号は市外局番の桁数が地域によって異なる(東京03は2桁、大阪06は2桁、携帯は3桁)ため、厳密なパターンは複雑になります。実務では
0\d{1,4}-?\d{1,4}-?\d{3,4}のような緩めのパターンで対応し、詳細なバリデーションはサーバー側で行うのが一般的です。郵便番号は\d{3}-?\d{4}でハイフンの有無両方に対応できます。 - 全角・半角変換に使える正規表現
- 全角英数字(
[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A])を検出し、文字コードの差分(0xFEE0)を減算することで半角に変換できます。逆に半角カタカナ([\uFF65-\uFF9F])の全角変換も正規表現で対象を特定した上で変換テーブルを適用する手法が一般的です。
- 主要なフラグの意味と使い分け
g(global):テキスト全体からすべてのマッチを検索。このフラグがないと最初のマッチで停止します。i(ignoreCase):大文字/小文字を区別しません。m(multiline):^・$を行単位の先頭/末尾に変更します。s(dotAll):.が改行文字にもマッチするようになります。u(unicode):Unicodeのコードポイントを正しく扱い、サロゲートペアを1文字として認識します。d(hasIndices):各キャプチャグループの開始/終了位置を返します。v(unicodeSets):ES2024で追加された高度なUnicode機能で、セット内の演算(交差・差分)が可能になります。- 貪欲マッチと非貪欲マッチ(Greedy vs. Lazy)
- 量指定子(
*,+,{n,m})はデフォルトで貪欲(Greedy)に動作し、可能な限り多くの文字にマッチしようとします。例えば".*"はHTMLタグ"class="test" id="main""に対して文字列全体にマッチしてしまいます。量指定子の後に?を付けると非貪欲(Lazy)になり、最短のマッチを返します:".*?"は"class="と"test"にそれぞれマッチします。 - ReDoS(正規表現による過負荷)と対策
- 入れ子の量指定子(例:
(a+)+)や、長い文字列に対するバックトラッキングは、特定の入力で指数的な処理時間を引き起こすReDoS(Regular Expression Denial of Service)脆弱性の原因になります。対策としては:(1) 非貪欲マッチの活用、(2) アトミックグループの使用(対応環境のみ)、(3) 入力長の制限、(4) タイムアウトの設定。本ツールではマッチ処理にタイムアウトを設定し、危険なパターンでもブラウザがフリーズしないよう保護しています。
- フォームバリデーション
- メールアドレス・電話番号・郵便番号・URLなど、ユーザー入力の形式チェックに正規表現は不可欠です。ただし、メールアドレスの完全な仕様(RFC 5322)を正規表現だけで網羅することは非常に困難であるため、基本的な形式チェックのみ正規表現で行い、実在確認はメール送信による認証で行うのがベストプラクティスです。
- ログ解析
- Webサーバーのアクセスログ(Apache/Nginx形式)やアプリケーションログからIPアドレス、タイムスタンプ、ステータスコード、ユーザーエージェントなどを正規表現で抽出します。名前付きキャプチャグループを活用すると、
(?<ip>\d+\.\d+\.\d+\.\d+)のようにコードの可読性が向上します。 - データクリーニング
- CSVやExcelから取り込んだデータの清掃に正規表現は強力なツールです。余分な空白の除去(
\s+→)、全角数字の半角変換、電話番号のフォーマット統一、HTMLタグの除去(<\/?[^>]+>)などが典型的な利用例です。 - テキストエディタでの一括検索・置換
- VS Code、Sublime Text、IntelliJ IDEAなどのエディタでは正規表現による検索・置換が利用できます。例えば、変数名のリネーム(
old_name(\w*)→new_name$1)、CSSプロパティの整理、マークダウンの書式変換などに活用できます。
- パターン(Pattern)
- 正規表現で表現された検索条件を「パターン」と呼びます。
/\d{3}-\d{4}/の場合、\d{3}-\d{4}がパターンです。 - マッチ(Match)
- テスト文字列の中で正規表現パターンに合致した部分のこと。全体マッチ(マッチした文字列全体)を指します。
- キャプチャグループ(Capture Group)
- 丸括弧
()で囲まれたパターンの一部。マッチした内容が記憶され、$1,$2などで後方参照できます。 - 非キャプチャグループ(Non-capturing Group)
(?:...)で記述するグループ。グルーピングのみ行い、キャプチャはしないためパフォーマンスが向上します。- 名前付きグループ(Named Group)
(?<name>...)で記述するグループ。$<name>やJavaScriptのmatch.groups.nameで参照します。- 後方参照(Backreference)
- キャプチャグループでマッチした内容を置換文字列中で
$1,$2として再利用すること。$&はマッチ全体を参照します。 - バックトラッキング(Backtracking)
- 正規表現エンジンがマッチに失敗した際に、前の選択肢に戻って別のマッチを試みる処理。過度なバックトラッキングはReDoSの原因になります。
- 貪欲マッチ(Greedy)
- 量指定子のデフォルト動作。可能な限り多くの文字にマッチしようとします。
- 非貪欲マッチ(Lazy / Non-greedy)
- 量指定子の後に
?を付けた動作。可能な限り少ない文字にマッチしようとします。 - アンカー(Anchor)
- 文字ではなく「位置」にマッチするパターン。
^(行頭)、$(行末)、\b(単語境界)が代表的です。 - エスケープ(Escape)
- メタ文字の特殊な意味を無効にし、文字そのものとしてマッチさせること。
\.はドット文字そのものにマッチします。 - フラグ(Flag / Modifier)
- 正規表現の動作を変更する修飾子。JavaScript標準フラグは g, i, m, s, u, d, v, y の8種です。
- 文字クラス(Character Class)
[...]で指定する文字の集合。集合内のいずれか1文字にマッチします。- 量指定子(Quantifier)
- 直前のパターンの繰り返し回数を指定するメタ文字。
*,+,?,{n,m}が該当します。 - 先読み/後読み(Lookahead / Lookbehind)
- マッチ位置の前後の条件を指定するゼロ幅アサーション。マッチ結果にはその文字自体は含まれません。
- アスペクト比・画面比率の自動計算ツール|ピクセルサイズを算出
- 文章校正・校正チェッカー|サーバー送信なし・無制限・登録不要
- テキスト差分チェッカー|2つの文章・文字の比較ツール
- Base64 エンコード&デコード|画像・テキストの双方向変換ツール
- 読む時間・スピーチ所要時間 計算機 プロンプター|文字数から話す時間を算出
- Macの濁点分離を即修復!Unicode正規化ツール(NFC変換)
- 文末重複&漢字比率チェッカー|ライター向け文章校正ツール
- SVG波線&ブロブ(不定形)ジェネレーター|CSSコードも自動生成
- ファビコン作成ツール|favicon変換ジェネレーター
- アプリ不要|インスタ画像サイズ変換(9:16対応)|余白・背景ぼかし
- PDFまとめツール| 結合・分割・抽出|サーバー送信なし
- 全角半角変換|ひらがな・カタカナ/半角カナも一括整形(差分表示)
- ExcelでCSVが文字化けする時の対策|UTF-8 BOM付与・削除&改行変換
- URL解析ツール|クエリ分解・編集+UTM生成(エンコード/デコード対応)
- ダミーテキスト自動生成ツール|Lorem ipsum・日本語対応
- ダミー画像ジェネレーター|プレースホルダー画像作成
- 画像カラーピッカー|写真から色コード抽出・パレット自動生成
- 画像圧縮&WebP一括変換ツール(登録不要・無制限・アップロード不要)
- URL・WifiのQRコード作成・生成・変換ツール(無料・登録不要)
- 無料・会員登録不要の履歴書・職務経歴書PDF作成ツール|スマホ対応
- 文字数カウント・単語数カウント・テキスト解析
- テキスト読み上げ・音声読み上げ(テキストリーダー)|TTS無料ツール(無制限・登録不要)
- WEB開発ツール
- CSS Flexbox/Grid レイアウトジェネレーター
- HTTPヘッダー確認
- 最適なECプラットフォーム診断ツール|Shopify・makeshop・EC-CUBE・モール型
- Markdown ⇔ HTML 相互変換ツール|リアルタイムプレビュー付き
- 最適なCMS診断ツール|WordPress・MovableType・ノーコード・ヘッドレスCMS等
- モダンUI CSSジェネレーター|グラスモーフィズム対応
- ホームページ制作/サイトリニューアル費用相場概算シミュレーション
- CSSアニメーションジェネレーター|@keyframes コード出力
- 現在のOS・ブラウザ・IP・画面解像度を一括取得|クライアント環境情報チェッカー
- JSON整形・バリデーター|ツリービュー&YAML変換
- Cron式ジェネレーター&実行スケジュール確認ツール|日本語翻訳・作成
- Webフォントプレビューア|Google Fonts日本語・英語フォント比較
- 構造化データ(JSON-LD)作成ジェネレーター【FAQ・パンくずリスト対応】
- CSSグラデーション&背景パターンジェネレーター|コード出力&プレビュー
- レスポンシブプレビューアー|複数デバイス幅を同時プレビュー
- hreflangタグ ジェネレーター|多言語サイト向け自動生成ツール
- SEO対策
- ネットワーク
- セキュリティ
- パスワード自動生成(ランダム作成)
- プライバシーポリシー&利用規約ジェネレーター|改正個人情報保護法対応の雛形を無料で自動生成
- WCAG対応 カラーコントラストチェッカー|文字色と背景色の比率計算
- セキュリティヘッダーチェッカー – A〜Fスコア+設定例付き
- パスワード強度チェッカー&解読時間シミュレーター|安全性を即診断
- PDFパスワード設定・解除ツール|サーバー送信なしで安全・登録不要
- パスワード付きZIP 作成ツール|Mac・Windows対応(無料・登録不要)
- 動画・音声ファイルサイズ計算ツール|ビットレートから即算出
- Basic認証作成(ベーシックにんしょう)|.htaccess&.htpasswd生成
- SNS・エンタメ
- トーナメント表作成ツール|対戦表&リーグ表を自動生成・自動保存
- 無料ビンゴマシーン|音声読み上げ・カード印刷対応|アプリ不要
- インスタ画像分割ツール|9分割・3分割のプロフィールグリッド投稿に
- ライブ参戦用 うちわ文字&応援ボードメーカー|アプリ不要で即作成
- SNS・EC向け画像リサイズツール|Instagram・Amazon・楽天の推奨サイズに一括変換
- OGP・X(Twitter)カード確認シミュレーター&タグ生成ツール
- アプリ不要!ルーレットメーカー|重み付け・演出付きカスタムルーレット作成
- アプリ不要!BPM測定ツール|タップでテンポ計測・ディレイ計算・メトロノーム
- チーム分けジェネレーター|スキル均等化・制約付きランダムグループ分け