正規表現のパターンを入力すると、テスト文字列のどこにマッチするかを色分けして表示します。試しながらパターンを組み立てられます。
よく使う書き方
\d 数字 \w 英数字とアンダースコア
\s 空白 . 任意の1文字
+ 1回以上 * 0回以上
? 0または1回 {n,m} n〜m回
^ 行頭 $ 行末
[abc] いずれか1文字 (…) グループ
| または \ エスケープフラグの意味
| フラグ | 効果 |
|---|---|
| g | すべてのマッチを探す(最初の1つで止まらない) |
| i | 大文字と小文字を区別しない |
| m | ^ と $ を行単位で扱う |
| s | . が改行にもマッチする |
つまずきやすいポイント
- 貪欲マッチ:.+ は可能な限り長くマッチします。最短にしたい場合は .+? を使います
- エスケープ:. や ( をそのまま検索したい場合は \. \( と書きます
- メールアドレスやURLの完全な検証は正規表現では困難です。用途に応じた簡易チェックにとどめるのが現実的です
- パターンが複雑になりすぎたら、複数回に分けて処理するほうが読みやすくなります
書けたら残しておく
苦労して組み立てた正規表現は、時間が経つと自分でも読めなくなります。何をマッチさせたいのかをコメントで残し、テスト用の文字列もあわせて保存しておくと、あとで直すときに助かります。
複雑になりすぎたら、正規表現1つで済ませようとせず、処理を分けたほうが結果的に速く安全です。
よくある質問
Q どの言語の正規表現ですか?
JavaScriptの正規表現エンジンで動作します。他の言語とは一部の記法が異なる場合があります。
Q 最短マッチにするには?
量指定子の後ろに ? を付けます。「.+?」のように書くと、可能な限り短くマッチします。
Q 置換もできますか?
本ツールはマッチの確認が中心です。置換は文字の一括置換ツールをご利用ください。
Q 処理が固まることがあります
書き方によっては計算量が爆発することがあります(壊滅的バックトラッキング)。パターンを簡潔にしてください。
