正規表現が試せる、使える! RegExrのご紹介
こんにちは。
開発チームのワイルド担当、まんだいです。
開発をやっていると、正規表現を使うことはよくあることで、何となく適当な正規表現を書くと、ビビるようなバグを産んでしまう可能性があります。
なので、正規表現のテストや動作確認をしたいけれど、テストコード書くのは……という時に、便利なサイトを紹介します。
正規表現の確認に、RegExrを使ってみよう
RegExrというサイトがあります。
このサイトでは、正規表現の確認をするために便利な機能がまとまっていて、使い心地もよいと思います。
もともとJavaScriptの正規表現だけを確認できるサイトだったのですが、最近見ない間に、PHPの正規表現(PCRE)にも対応していました。
使い方は簡単で、見たら分かる部分もありますが、サイト全体英語なので、一つずつ見ていきたいと思います。
Menu
メニューには、サイトのヘルプや正規表現のチートシートがあります。
特にチートシートやリファレンスはよく見ることになるので、覚えておいたほうがいいですね。
見やすく作られているので、重宝します。
Expression
ここからよく使う項目で、Expressionの部分には、実際の正規表現を書いていきます。
基本はJavaScriptなので、「/」から「/」で囲まれた部分に正規表現を書くことになります。
「()」や「[]」などで囲まれた部分が色分けされるので、見た目にも非常に分かりやすいです。
こういう機能、VSCodeにも追加してほしいな……。
タイトルの右側に、正規表現の実行エンジンをJavaScriptかPCREのどちらかを選ぶことができます。
また、Flagsの項目では、5つのオプションを選ぶことができます。
- g (global)
- i (case insensitive)
- m (multiline)
- u (unicode)
- y (sticky)
それぞれJavaScriptで設定できるオプションなので、たとえばPHPの場合、globalフラグはないので、preg_match_allという専用の関数を選択することになります。
Text
この項目には、サンプルとなるテキストを入力します。
デフォルトで色々書かれていますが、こちらは消してもOKで、自分で入力することもできます。
怪しい文字列やテストしたい文字列を入力しましょう。
Tools
こちらの項目は正規表現の結果を料理するためのツールがセットされていて、以下の4つが現在利用可能です。
Replace
正規表現でマッチした文字列を置換するためのツールです。
このツールを使えば、簡単な文字列変形もできてしまうので、単なる正規表現のチェックツール以外の使い方もできます。
List
Listは正規表現でマッチした文字列をリスト表示します。
「$&」で表示された部分に、マッチした文字列が入るので、抽出した文字列の前後に付け加えたい文字列を入力することで、一気に追加できます。
デフォルトでは、「\n」が付与されているので、マッチした文字列毎に改行されていますが、文字列の最初に「- 」を追加すれば、マッチした文字列をマークダウンのリストにすることも簡単にできます。
これはこれで便利ですね。
Details
Detailsというツールは、選択した文字列が、正規表現中のどの部分にマッチしたかを詳しく知ることができます。
思っていた部分ではない部分でマッチした結果、思った結果が得られているだけということもあり得るので、こちらで確認して過程も正しく動作しているか確認してみましょう。
Explain
これは、MySQLのEXPLAINのような機能です。括弧でグルーピングされる文字列や、どの部分までが括弧がマッチする箇所になるかが分かります。
これも非常に便利です。
まとめ
正規表現のチェックツール、RegExrの機能を紹介しましたが、いかがだったでしょうか?
最近のバージョンアップで、PHPへの対応や、ツールの追加で色々と正規表現の確認以上のことができるようになり、ますます便利になった気がします。
個人的にはReplaceやListツールは、エクセルでガーッとやることが多かった作業なので、もう少し賢く作業してみようと思いました。
以上です。