正規表現とは
正規表現は、文字列の検索条件をパターンで表す方法です。このツールはJavaScript / ECMAScript RegExp専用で、ブラウザ標準のnew RegExp(pattern, flags)により評価します。PCRE、PHP、Python、Ruby、Java、.NET、RE2などとは構文や結果が異なる場合があります。
正規表現テスターの使い方
pattern欄へ/を含めず正規表現本体を入力し、フラグを選び、テスト文字列を入力します。たとえばPattern \d+、Flags g、Text ID: 123 / 456では、123と456の2件が表示されます。
JavaScriptの正規表現フラグ
| flag | 意味 | 用途 |
|---|---|---|
| g | global | 複数マッチ |
| i | ignoreCase | 大文字・小文字を区別しない |
| m | multiline | 行ごとの先頭・末尾 |
| s | dotAll | ドットを改行にも一致 |
| u | Unicode | Unicode mode |
| v | Unicode Sets | Unicode集合記法 |
| y | sticky | 指定位置から連続一致 |
| d | indices | キャプチャ位置 |
g・i・m・sとは
gは全文から複数の一致を取得し、OFFでは最初の1件だけを取得します。iは大文字と小文字を区別しません。mは^と$を各行に適用し、sは.を改行にも一致させます。
u・vとは
uはUnicode mode、vはUnicode Sets modeです。両者は同時に指定できません。ブラウザが対応している場合、\p{Script=Hiragana}+のようなUnicode property escapesを利用できます。対応しないフラグは画面で無効になります。
キャプチャグループとは
Pattern (\d{4})-(\d{2})-(\d{2})とText 2026-08-14では、Group 1が2026、Group 2が08、Group 3が14になります。任意グループが参加しなかった場合は「未マッチ」と表示します。dフラグON時はブラウザが返す正確なgroup indicesも表示します。
名前付きキャプチャグループとは
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})のように名前を付けると、year、month、dayとして結果を確認できます。
正規表現で置換する方法
上の日付PatternにReplacement $<day>/$<month>/$<year>を指定すると、14/08/2026になります。gがOFFなら最初の一致だけ、ONならすべての一致をJavaScript replace semanticsで置換します。
正規表現チートシート
.任意の1文字\d数字\wword character\s空白^先頭$末尾*0回以上+1回以上?0または1回{n,m}回数[]文字クラス()キャプチャ(?:)非キャプチャ|OR(?=...)肯定先読み(?!...)否定先読み(?<=...)肯定後読み(?<!...)否定後読み処理が遅くなる正規表現について
入れ子の量指定子などは、入力内容によってcatastrophic backtrackingを起こすことがあります。本ツールは正規表現のコンパイル・マッチ・置換をメイン画面から分離したブラウザ内Web Workerで実行し、1秒で停止します。ただし安全性を完全に保証するものではありません。
HTMLやXMLを本格的に解析するときは、正規表現だけでなく用途に合うparserが必要になる場合があります。
よくある質問
正規表現とは何ですか?
文字列の検索や置換条件をパターンで表す記法です。
このツールはどの正規表現に対応していますか?
JavaScript / ECMAScript RegExpに対応します。他の言語や正規表現エンジンとは結果が異なる場合があります。
gフラグとは?
globalの略で、テキスト全体から複数の一致を取得します。
iフラグとは?
大文字・小文字を区別せずにマッチします。
mとsの違いは?
mは^と$の行単位動作、sはドットが改行へ一致するかを変更します。
uとvは同時に使えますか?
いいえ。JavaScript RegExpの仕様上、同時には使用できません。
キャプチャグループを確認できますか?
はい。番号付きグループと、ブラウザ対応範囲で名前付きグループを確認できます。
名前付きキャプチャにも対応していますか?
はい。対応ブラウザではグループ名と値を表示します。
正規表現で置換できますか?
はい。JavaScript String.prototype.replace()と同じ置換文字列の意味でプレビューできます。
正規表現でブラウザが固まることはありますか?
重い処理をWeb Workerへ分離し1秒で停止しますが、あらゆる危険を完全に判定する機能ではありません。
絵文字でindexが見た目とずれるのはなぜですか?
JavaScript RegExpのindexはUTF-16 code unit位置のため、絵文字などでは見た目の文字数と異なる場合があります。
入力したテキストはサーバーへ送られますか?
いいえ。Cookie、ブラウザストレージ、URL、Analytics、外部API、サーバーへ保存・送信しません。