正規表現は適切に使うと、プログラムの手間を削減できる強力なツールになります。
ただ、正規表現を使うと動作テストが面倒だったり、慣れないうちはどんなことが書いてあるのかわからないなんてこともあると思います。
そんな時に、便利な正規表現のためのテストツール&可視化ツールの紹介です。
正規表現のテストツールなんて、どれも同じかと思いきや、結構それぞれ特徴ある機能があるものも多いので、メモがてらまとめてみました。
photo by Jeff Kubina
目次
正規表現チェッカー
正規表現チェッカー PHP: preg_match() / JavaScript: match()
PHPのpreg_matchとJavaScriptの matchの実行結果を返してくれる定番のテストツールです。
日本語のリファレンスやサンプルがあるので、メタ文字などを忘れてしまった時などにも便利。
以下のように、PHPとJavaScriptの結果が同時に表示されます。
PHP正規表現チェッカー
PHP正規表現チェッカー(現在サービス終了)
こちらもPHPの正規表現チェッカーです。リアルタイムに結果が表示されます。
サイドに日本語のリファレンスがついているので、ド忘れした時でも基本のものなら手軽に思い出すことができます。
また、このツールの特徴として、正規表現を用いた置換後の結果も表示させることができます。Wordpressの本文表示をフックしたと仮定して、preg_replaceさせた後の結果を見たいときなどにも便利です。
Rubular
Rubular: a Ruby regular expression editor and tester
こちらは主にRuby向け。Rubyのバージョンを指定してチェックすることができます。もちろん、他の言語で使用しても問題ないと思います。
Rubularは、正規表現を入力していくと、ボタンなどを押さなくてもリアルタイムでチェック結果が表示され「どんな文字を加えるとどんな検索結果を得られるか」はよくわかり、動作状態がよくわかります。
正規表現デバッグツール
PHPのpreg系の正規表現をテストするツールです。
preg_matchの結果を返してくれるツールはよくあるのですが、preg_match_allの処理結果を見ることができるのが便利です。
正規表現マスター
こちらは、検索ワードと検索対象文字列などをログとして保存できるテストツールです。
以前のテスト結果を再び利用したい場合などには便利かも。
RegExr
RegExr: Learn, Build, & Test RegEx
色分けされて見やすい正規表現テストツール。
文字を入力するとリアルタイムに処理結果が反映されます。
英語ではありますが、サイドバーからリファレンス、チートシート、サンプルを見ることができます。また、テストした正規表現は、コミュニティーやお気に入りなどに保存して共有することもできます。
コミュニティーには、いろいろな方が書いた正規表現も載っていて参考になります。
また、gskinner/regexr · GitHubにて、MITライセンスにてソースコードも公開されています。
Refiddle
こちらもサクサク使えるリアルタイム正規表現チェックツールです。
Refiddleの特徴として、「JavaScript」と「Ruby」と「.NET」の正規表現オプションを切り替えて試すことができます。
また、タグから、いろいろな人が書いた正規表現を見たり、検索から探したりすることもできます。
Scriptular
Scriptular – Javascript Regular Expression Editor
Rubularに影響を受けて作られた、JavaScriptの正規表現リアルタイムチェッカーです。
jonmagic/scriptular · GitHubでソースも公開されています。ライセンスは独自。
Regex Test Drive for Java Developer
Regex Test Drive | 正規表現オンラインテストサイト
Java開発者向けの正規表現テストツール。置換文字も指定することができます。
Javaのものは、Java regex testerというのもあります。
Rex V
Rex V: an AJAX Regular EXpression eValuator
以下の異なったシステムの正規表現を試すことができるテストツールです。
- PHP PCRE
- PHP Posix
- Perl
- Python
- Javascript
- Node.JS
マッチした結果が赤色で強調表示され、さらにリスト表示までされます。加えて置換文字を設定することで置換テストもすることができます。
Regex Tester
大きなテキストエリアに検索対象を文字列を入力して、リアルタイムチェックができる結果が見やすいテストツールです。
大文字と小文字の違いなどを色分けして表示してくれます。
RegExp playground
こちらは、プレイグラウンドと名付けられているように、正規表現で遊んで覚えちゃおといった趣旨のサイトかと思います。
ただ、ちゃんとチェックも行うことができます。
マッチしない正規表現が入力されると、以下のように×印が表示されます。
Regulex(可視化)
Regulex:JavaScript Regular Expression Visualizer.
正規表現の可視化ツールです。
慣れないと(慣れても)パッと見てわかりづらい正規表現をフローチャートのように視覚化して表示してくれます。
正規表現のチャート画像は、PNGでダウンロードしたり、iframeでサイトに埋め込んだりすることもできます。
以下は、「URLの正規表現の一例」をPNGでダウンロードしたものです。
JexCheng/regulex · GitHubにて、MITライセンスでソースコードも公開されています。
Regexper(可視化)
こちらも、ソースコードの可視化ツールです。
こちらのツールは、SVGをダウンロードすることができます。
以下は、「メールアドレス」を正規表現で表したものです。
javallone/regexper-static · GitHubにて、MITライセンスでソースコードも公開されています。
Debuggex(可視化&チェック)
Debuggex: Online visual regex tester
正規表現を可視化しながらチェックも行うことができるテストツールです。JavaScript、Python、PCREでのテストを行うことができます。
まとめ
オンラインで使える正規表現のテストツールは、どれも似たようなものかと思いきや、調べてみたら、「そのツールでしかテストできないもの」なんかがあったりして、用途によって使い分けるのに良いです。
また可視化ツールは、正規表現に書かれている内容がよくわからないときは、理解の助けになると思います。