LoginSignup
6
5

More than 1 year has passed since last update.

正規表現 | x オプションをご存知ですか? ( 少しでも読みやすく )

Last updated at Posted at 2016-03-14

x オプションを使うと、スペースを無視してくれます。

問題

たとえば次の正規表現が、何をやっているか。
ひと目でイメージすることが出来るでしょうか?

/\A(\d{3}-\d{3}-\d{1,3})|(\d{3}-\d{1,3})|(\d{1,9})\z/

僕は分かりません。

解決

次のように x オプションを指定すると。スペースを無視します。
そして、そもそも分かりにくい正規表現を。多少でも読みやすくすることが出来ます。

/\A ( \d{3}-\d{3}-\d{1,3}) | (\d{3}-\d{1,3}) | (\d{1,9} ) \z/x

もっと読みやすく ( 改行する )

それが許されるプログラミング言語であれば、改行することも出来ます。

/
  \A
    (\d{3}-\d{3}-\d{1,3}) |
    (\d{3}-\d{1,3}) |
    (\d{1,9})
  \z
/x

なんか気持ち悪い?

  • 慣れの問題ではないでしょうか。
  • 正規表現の場合、なぜか「詰めて書く」のが一般的です。ですが、たとえば逆に「プログラミングコードを改行なしで書く」ことや「SQLを改行なしで書く」ことを想像してみてください。

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

メンター受付

6
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5