interprism's blog

インタープリズム株式会社の開発者ブログです。

きれいな正規表現してるだろ。

ウソみたいだろ。正規表現が書けるんだぜ。これで…。

この投稿は インタープリズムはAdvent Calendarを愛しています。世界中のだれよりも。 Advent Calendar 2017の2日目 の記事です。

初めに

いきなりですが、

入力された値のバリデーションチェックや文字列を検索するときなど正規表現を使うことが良くあります。 私は正規表現を書いていると「これで欲しい値が全部とれているのかな」とか、「これって不要な値を正しく弾けているのか」と不安になることがよくありますが、みなさんはどうでしょうか? 私を含め正規表現が不安な人のためにオススメのツールをいろいろ調べてみました!

正規表現チェッカー PHP: preg_match() / JavaScript: match()

正規表現とチェックしたい文字列を入力して実行すると、 PHP: preg_match()JavaScript: match()の実行結果が出力されます。 正規表現の動作確認をしたいときにオススメです! f:id:interprism:20171128055901p:plain

リファレンスやサンプルもあるのでとても参考になりますね。 f:id:interprism:20171128060659p:plain

Regulex:JavaScript Regular Expression Visualizer

こちらは入力した正規表現フローチャートで可視化してくれます。 下記のメールアドレスの正規表現で試してみましょう。

^[0-9a-z_./?-]+@([0-9a-z-]+.)+[0-9a-z-]+$

f:id:interprism:20171128063507p:plain

正規表現だけだと期待値が過不足なく取れているかわかりにくいですが、 このツールを使えば正規表現を可視化してくれるので理解しやすいのではないでしょうか。

おまけ

正規表現を遊びながら学べるツールを紹介します。 自分の実力がどのくらいか試してみてはどうでしょうか。

Regex Golf

Regex Golf は 「Match all of these…」にある単語を取得し、「none of these…」にある単語を除く正規表現を回答していきます。 f:id:interprism:20171129063834p:plain

入力すると条件に合う単語にチェックが入ります。 すべての単語にチェックが入るように正規表現を作っていきます。 f:id:interprism:20171129065843p:plain

↓のようにちょっと変わった問題もあるので飽きないですね! f:id:interprism:20171129071107p:plain

Regex Crossword

こちらは正方形のマスに縦列と横列の正規表現の条件にある文字列を埋めていきます。 全部埋めたあとは「Validate」を押して答え合わせを行います。 f:id:interprism:20171129071908p:plain

解いていくと正方形がハニカム構造になったりします… この問題を解くころには正規表現をマスターしているでしょう! f:id:interprism:20171129072114p:plain

終わり

今回は正規表現に関する4つのツールを紹介しましたが、いかがでしたでしょうか。 調べていくと他にも魅力的なツールもたくさんあり、すべてを紹介できなくてとても残念でした。 ぜひ、自分に合ったツールが見つかるといいですね♪ この記事がツールを探す参考になればうれしいです。

ここまで読んでいただきありがとうございましたm(。≧Д≦。)m

インタープリズムのページ

PAGE TOP