はじめに
正規表現チェッカー1について、たまたま調べる機会がありましたので、備忘録も兼ねて記事にしてみました。
もし、「これから探そうとしてた!」という方のご参考になりましたら幸いです。
10種類をピックアップ
調べてみると、30種類以上ありそうでしたので、
・大は小を兼ねそうなもの。
・固有のプログラミング言語をベースに開発され、正規表現の方言に強そうなもの。
という2つの観点で、10種類をピックアップしました。
No. | Webサイト | 対応言語 | 特徴 | 紹介記事 |
---|---|---|---|---|
1 | regex101 https://regex101.com/ |
JavaScript, Python, PHP, Java, PCRE, Go | 正規表現パターンの良し悪しの相対的な判断基準として、マッチするまでのステップ数を表示してくれる優れもの。 |
正規表現のデバッグに重宝した神サイトを紹介してみる 正規表現の内部処理が分かる便利ツールregex101を使ってみた 正規表現のパフォーマンスの話をされても全くピンと来なかった僕は、backtrackに出会いました。 - Qiita |
2 | RegExr https://regexr.com/ |
JavaScript, PCRE | regex101並みの高機能。好みによっては、regex101よりもいいという方がいらっしゃるかも。 | 正規表現が試せる、使える! RegExrのご紹介 |
3 | Debuggex https://www.debuggex.com/ |
JavaScript, Python, PCRE | 前出の二つにない正規表現の視覚化をしながらのデバッグが可能。 | JavaScript、Python、PCREの正規表現チェッカー |
4 | Regexper https://regexper.com/ |
JavaScript | 正規表現の視覚化専用、視覚化ツールの中でピカイチ。 | 正規表現組み立てるなら、regexper を使おう! |
5 | Rubular https://rubular.com/ |
Ruby | Rubyベースで開発された正規表現チェッカーのカリスマ的存在。 | 初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 - Qiita |
6 | Crystular http://www.crystular.org/ |
Crystal | Rubularに影響を受けた開発者によって作られたクローン的存在(以降も同様、機能に多少の増減あり) | なし |
7 | Scriptular https://scriptular.com/ |
JavaScript | テスト文字列とテスト結果の並び方が、Rubularの横並びに対して縦積みとなっている。 | 初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 - Qiita |
8 | Pythex https://pythex.org/ |
Python | Scriptularと同様に縦積みの構成、オプション(フラグ)はトグルボタン式、リファレンスも折り畳み式となっておりユニーク。 | Python入門 (5) -正規表現|npaka|note |
9 | PHP Live Regex https://www.phpliveregex.com/ |
PHP | Rubularクローンとしては多機能で置換もできるが、テスト文字列中のマッチ箇所がハッチングされず、一目でわかりにくい点が惜しい。 | PHPの正規表現をリアルタイムに動作確認できる「PHP Live Regex」 |
10 | Elixre http://elixre.lpil.uk/ |
Elixir | マッチ箇所のハッチングズレに目を瞑れれば、Elixir用としては希少な存在。 | なし |
さいごに
最後までご覧いただき、ありがとうございました。
もし、こちらにないもので「これは定番でしょ〜」とか「こっちの方がいいよ〜」などのご意見がありましたら、コメント欄の方で優しく教えてあげてください😄
参考文献
本記事の執筆にあたり、以下の記事を参考とさせていただきました。
正規表現チェッカーを調べるための手掛かりとなり、大変助かりました。ありがとうございました🙇🏻♂️
・正規表現 | 正規表現の言語別チェッカー
・JavaScript、Python、PCREの正規表現チェッカー-p--q
・ブラウザから手軽にチェックできる正規表現テストツールまとめ
・正規表現チェックツールまとめ - Qiita
-
正規表現のパターンとテスト対象の文字列を入力すると、マッチした結果などを表示してくれるツールのこと。正規表現パターンのデバッグによく用いられる。 ↩