正規表現テスター
正規表現がどこにマッチするかを、入力しながらその場で確認できます。
キャプチャグループの中身と、置換したときの結果も同時に表示します。
正規表現を試す
1. パターン
0 件2. テストする文字列
入力するたびに自動で判定します。
3. マッチした箇所
4. 置換プレビュー
$1〜$9 でグループ、$& でマッチ全体、
$$ で $ そのものを表します。
正規表現の基本記号
| 記号 | 意味 | 例 |
|---|---|---|
. | 任意の1文字(改行を除く) | a.c は abc, a1c にマッチ |
* | 直前が0回以上 | ab* は a, ab, abb にマッチ |
+ | 直前が1回以上 | ab+ は ab, abb にマッチ(a は不可) |
? | 直前が0回か1回 | colou?r は color, colour にマッチ |
{n,m} | 直前がn回以上m回以下 | [0-9]{3,4} は3〜4桁の数字 |
[] | いずれか1文字 | [abc] は a か b か c |
[^] | これら以外の1文字 | [^0-9] は数字以外 |
() | グループ化・キャプチャ | (\d+)-(\d+) で2つに分けて取り出す |
| | いずれか | 猫|犬 は猫か犬 |
^ $ | 文字列の先頭・末尾 | ^http は http で始まる |
\d \w \s | 数字・単語構成文字・空白 | \d は [0-9] と同じ |
\ | 直後の記号をそのまま扱う | \. はピリオドそのもの |
最短一致を使う
正規表現の * や + は既定でできるだけ長くマッチしようとします(最長一致)。たとえば <.+> でHTMLのタグを取り出そうとすると、最初の < から最後の > までまとめて拾ってしまいます。
これを避けるには、? を付けて <.+?> と書きます。これで最短一致になり、タグを1つずつ取り出せます。上のテスターで両方を試してみると違いがはっきり分かります。
WordPressで使う場面
記事内の古いURLをまとめて書き換えたい、特定の書式のショートコードを一括で削除したい、といった場面では「Search Regex」などのプラグインで正規表現による置換が使えます。ただし記事本文を直接書き換えるため、実行前に必ずバックアップを取り、まずこのページでパターンとマッチ範囲を確認してから使ってください。
意図より広くマッチするパターンをそのまま全記事に適用すると、復旧に時間がかかります。ここで置換プレビューまで確認しておけば、その事故を避けられます。
よくある質問
ここで動いたパターンは、PHPやPythonでもそのまま使えますか?
基本的な記号は共通ですが、方言があります。このページはJavaScriptの正規表現エンジンで動作しており、PHPの preg_match はPCRE、Pythonは re モジュールと、それぞれ対応する機能が少しずつ異なります。とくに先読み・後読みや名前付きグループの書き方は確認してください。
日本語にマッチさせたいのですが。
ひらがなは [ぁ-ゟ]、カタカナは [ァ-ヿ]、漢字はおおよそ [一-鿿] で指定できます。まとめて日本語を拾うなら [^\x00-\x7f](ASCII以外)が手軽です。
ブラウザが固まってしまいました。
(a+)+ のようにネストした繰り返しを含むパターンは、条件によって処理時間が爆発的に伸びることがあります(壊滅的バックトラッキング)。このツールでは処理時間に上限を設けて中断しますが、繰り返しのネストはできるだけ避けてください。
入力した文章は送信されますか?
いいえ。すべてブラウザの中だけで処理しています。