ちいつる

CONVERT

正規表現テスター

正規表現を貼ると、実データでマッチ箇所をその場でハイライト。うまくいかないときは、AIへの修正依頼プロンプトも作れます。

使い方パターン欄に正規表現を入力し、テスト文字列を貼り付けるとマッチ箇所が即座にハイライト。例: パターン \d+・テスト文字列 注文番号: 1234 合計: 5678円 → 数字部分がハイライトされます。

ライブテスター

パターン

//g
機能

テスト文字列

マッチ結果 — 6件

生年月日: 1990-01-15、電話: 03-1234-5678
#1 index:61990
#2 index:1101
#3 index:1415
#4 index:2103
#5 index:241234
#6 index:295678
このパターンをURLで共有できます。開くと、パターン・フラグ・テスト文字列が復元されます。

よく使うプリセット

クリックするとパターンとサンプル文字列がテスターに入ります。

AIに修正を依頼

思ったようにマッチしない・しすぎるときは、下のプロンプトをコピーして ChatGPT や Claude に貼り付け。今のパターン・テスト文字列・マッチ状況をそのまま渡して直してもらえます。

修正依頼プロンプト

以下の JavaScript 正規表現をレビューし、必要なら修正してください。

現在のパターン: /\d+/g

テスト文字列:
"""
生年月日: 1990-01-15、電話: 03-1234-5678
"""

現在マッチしている箇所(6件): 「1990」 「01」 「15」 「03」 「1234」 「5678」

【依頼したいこと】
- マッチさせたい例: (ここに書く)
- マッチさせたくない例: (ここに書く)

修正後のパターンを /パターン/フラグ の形式で示し、変更点と理由も簡潔に説明してください。

リファレンス

文字クラス
構文意味説明
.任意の1文字(改行除く)「abc」「a1c」にマッチ
\d数字([0-9] 相当)「123」にマッチ
\D数字以外「abc」にマッチ
\w単語文字([a-zA-Z0-9_])「hello_1」にマッチ
\W単語文字以外「!@#」にマッチ
\s空白文字(スペース・タブ・改行など)「a b」にマッチ
\S空白以外「hello」にマッチ
[abc]a・b・c のいずれか1文字母音1文字
[^abc]a・b・c 以外の1文字数字以外
[a-z]a 〜 z の範囲英字1文字
量指定子
構文意味説明
*0回以上(貪欲)「」「a」「aaa」にマッチ
+1回以上(貪欲)「a」「aaa」にマッチ
?0または1回(貪欲)「color」「colour」にマッチ
{n}ちょうど n 回4桁の数字
{n,}n 回以上2桁以上の数字
{n,m}n 〜 m 回2〜4桁の数字
*?0回以上(非貪欲・最短マッチ)最短のタグにマッチ
+?1回以上(非貪欲)最短の a+ にマッチ
??0または1回(非貪欲)できるだけ短く
アンカー
構文意味説明
^文字列(または行)の先頭「Hello」で始まる
$文字列(または行)の末尾「end」で終わる
\b単語の境界単語「word」のみ
\B単語境界以外「concatenate」の cat
グループ
構文意味説明
(abc)キャプチャグループグループ1・2に数値を格納
(?:abc)非キャプチャグループ(グループ化のみ)「ababab」にマッチ
(?<name>abc)名前付きキャプチャグループgroups.year で参照
\1後方参照(グループ1の内容を再マッチ)「hello hello」にマッチ
\k<name>名前付き後方参照開き引用符と閉じが同じ
選択・先読み・後読み
構文意味説明
a|ba または b(選択)「cat」か「dog」
(?=abc)肯定先読み(abc の直前)「100 USD」の 100
(?!abc)否定先読み(abc の直前でない)USD の前以外の数字
(?<=abc)肯定後読み(abc の直後)「$100」の 100
(?<!abc)否定後読み(abc の直後でない)$の後以外の数字
エスケープ・特殊文字
構文意味説明
\.リテラルのドット「3.14」にマッチ(3X14 はマッチしない)
\n改行改行を含む文字列
\tタブタブ区切り
\rキャリッジリターンWindows 改行
\0Null 文字バイナリデータで使用
\uXXXXUnicode コードポイント(4桁16進)「あ」にマッチ
フラグ
構文意味説明
gグローバル(全マッチを返す)「1 2 3」から 1,2,3 すべて取得
i大文字小文字を区別しない「Hello」「HELLO」もマッチ
m複数行モード(^ $ が各行に対応)各行の先頭にマッチ
sdotAll(. が改行にもマッチ)「a\nb」にもマッチ
uUnicode モード(サロゲートペア対応)絵文字など4バイト文字
yスティッキー(前回マッチの直後から検索)位置を維持したまま連続マッチ
その他
構文意味説明
(?i:abc)インライン修飾子(一部のエンジンのみ)JS では未対応
[\u3040-\u309F]ひらがな Unicode 範囲ひらがな1文字以上
[\u30A0-\u30FF]カタカナ Unicode 範囲カタカナ1文字以上
[\u4E00-\u9FFF]CJK漢字 Unicode 範囲(主要)漢字1文字以上
[\uFF01-\uFF60]全角ASCII(記号・英数)全角英数や記号

よくある質問

gフラグを付けなくても全マッチが取得できるのはなぜですか?

内部的には常にgフラグを付けて評価しているため、チェックを外していてもマッチ一覧・ハイライトは全件表示されます。gフラグの表示上のオン/オフは、実際にコピーする正規表現リテラルに反映されます。

プリセットを選ぶとテスト文字列が変わることがあるのはなぜですか?

テスト文字列が初期状態(未編集・空欄・別のプリセットのサンプル)のときだけ、そのプリセットの動きが分かるサンプル文字列に差し替えています。自分で入力・貼り付けした文字列は上書きされません。

置換で $1 や $2 はどう使いますか?

パターン内のキャプチャグループ(()で囲んだ部分)に、出現順で $1、$2 …と番号が振られます。置換文字列にこれを書くと、そのグループがマッチした内容に置き換わります。名前付きキャプチャグループ((?<name>...))にも対応しています。

パターンを入力してもブラウザが固まることがあるのはなぜですか?

特定のパターン(入れ子の量指定子など)は「破滅的なバックトラック」と呼ばれる現象を起こし、長い入力に対して計算量が爆発的に増えることがあります(ReDoS)。固まった場合はパターンを見直すか、タブを再読み込みしてください。

対応していない正規表現の書き方はありますか?

ブラウザのJavaScriptエンジン(ES2022以降)が対応する構文のみ使えます。名前付きキャプチャグループや後読み(lookbehind)は比較的新しい機能のため、古いブラウザでは動作しない場合があります。

uフラグはいつ使いますか?

絵文字などサロゲートペアの文字を \u{1F600} のようなコードポイント表記で書くときや、文字を正しく1文字単位で扱いたいときに付けます。uフラグを付けると構文チェックが厳密になるため、これまで動いていたパターンがエラーになることがあります(その場合はエラーメッセージが表示されます)。

共有リンクは何を含んでいますか?

「共有リンクをコピー」で、いまのパターン・フラグ・テスト文字列をURLのクエリに載せたリンクをコピーします。そのURLを開くと同じ状態が再現されるので、レビュー依頼やメモ代わりに使えます。テスト文字列もURLに含まれる点にご注意ください。

動作: 正規表現の評価はすべてブラウザ内(JavaScript の RegExp)で行います。入力はサーバーに送信しません。
対応: JavaScript(ES2022+)の正規表現に準拠。名前付きキャプチャグループ・後読み・Unicode プロパティエスケープに対応したモダンブラウザが必要です。
注意: 複雑なパターン(例: (a+)+ )は長い入力に対してブラウザが一時的に固まることがあります(ReDoS)。固まったときはパターンを見直すか、タブを再読み込みしてください。