カテゴリ
📦 Handy Box
Developer Tools

正規表現マスターツール

「読めない・書けない」を解決。パターンの構造を日本語で完全解説し、
リアルタイムテスト&多言語コード生成まで行うオールインワンツール。

🔒 すべての処理はブラウザ内で完結。入力データはサーバーに送信されません。

✏️ 正規表現を入力

/ /
0件マッチ
正規表現とテスト文字列を入力すると、マッチ結果がハイライト表示されます
テストケースを追加してください
$& (全体) $1 $2 $` (前) $' (後)
置換結果がここに表示されます
正規表現を入力すると、パターンの意味が日本語で解説されます
キャプチャグループ ( ) がある場合、ここに表示されます
正規表現の構造がビジュアル表示されます

💻 コード生成

// 正規表現を入力するとコードが生成されます

📚 パターンライブラリ

📋 クイックリファレンス

メタ文字

.任意の1文字
\d数字 [0-9]
\w英数字 [a-zA-Z0-9_]
\s空白文字
\D数字以外
\W英数字以外
\S空白以外
\b単語境界

量指定子

*0回以上
+1回以上
?0回か1回
{n}n回
{n,}n回以上
{n,m}n〜m回
*?最小マッチ
+?最小マッチ

アンカー・グループ

^行頭
$行末
()グループ
(?:)非キャプチャ
(?=)肯定先読み
(?!)否定先読み
|OR
[]文字クラス

よくある質問

最初の1件しかマッチしないのはなぜ?

フラグ欄に g(Global)を追加してください。gフラグがないと、最初に見つかった1件でマッチを終了します。このツールではデフォルトでgフラグがオンになっています。

大文字・小文字を区別しないようにするには?

フラグ欄に i(Ignore case)を追加してください。例えば、/hello/gi とすると「Hello」「HELLO」「hello」すべてにマッチします。

キャプチャグループ ($1, $2...) とは?

正規表現内の丸括弧 ( ) で囲んだ部分を「キャプチャグループ」と呼びます。マッチした文字列の一部を抜き出したり、置換時に参照($1など)できます。例: (\d{4})-(\d{2})-(\d{2}) で日付をキャプチャし、$1年$2月$3日 に置換可能です。

どのプログラミング言語でも同じ正規表現が使えますか?

基本的な記法(\d+など)は共通ですが、先読み・後読み・フラグの扱いなど、言語ごとに微妙な違いがあります。このツールはJavaScriptの正規表現エンジンを使用しています。生成されたコードは各言語用に調整されていますが、複雑なパターンは言語のドキュメントも確認してください。

「ReDoS」攻撃とは何ですか?

悪意ある入力で正規表現の処理時間を爆発的に増加させる攻撃です。(a+)+ のようなネストした量指定子は危険です。ユーザー入力を正規表現に使う場合は、パターンの複雑さを制限し、タイムアウトを設定してください。

💡 活用ガイド

🔍 データ抽出
  • ログファイルから特定パターンを抽出
  • CSVから特定列のデータを取得
  • HTMLからリンクやメールを収集
✅ 入力バリデーション
  • メールアドレスの形式チェック
  • 電話番号・郵便番号の検証
  • パスワード強度の確認
🔄 テキスト置換
  • 日付形式の一括変換
  • URLのパラメータ書き換え
  • 不要な文字・空白の削除
🛠️ 開発・デバッグ
  • APIレスポンスのパース
  • 設定ファイルの値取得
  • コードの検索・リファクタリング

🎓 豆知識

📜 正規表現の歴史
正規表現は1950年代に数学者Stephen Kleeneが考案した「正規言語」が起源。1968年にKen Thompsonがテキストエディタに実装し、UNIXのgrepコマンドで広まりました。
🔀 フレーバーの違い
正規表現には「PCRE」「JavaScript」「Python」など複数のフレーバーがあり、機能が微妙に異なります。「\d」「\w」は共通ですが、後読み「(?<=)」などは対応状況が異なります。
⚡ 貪欲と怠惰
「.*」は貪欲(greedy)で可能な限り長くマッチ。「.*?」は怠惰(lazy)で最短マッチ。HTMLタグを取得したい時など、使い分けが重要です。
🎯 先読みと後読み
「(?=...)」は肯定先読み、「(?!...)」は否定先読み。マッチ位置の前後の条件を指定できます。「password(?=123)」は「password123」のpassword部分にマッチします。