Rubyで複雑な正規表現の可読性を高める
%rで始まる正規表現リテラルを使う
xオプションを使う
こんな感じのコードが書ける:
code:rb
DATE_MATCHER = %r@
^
(\d{1,2}-\d{1,2}-\d{4})| # MM-dd-YYYY
(\d{1,2}/\d{1,2}/\d{4})| # MM/dd/YYYY
(\d{4}-\d{1,2}-\d{1,2})| # YYYY-MM-dd
(\d{4}/\d{1,2}/\d{1,2})| # YYYY/MM/dd
$
@x.freeze
%rリテラル
%rに続く記号で終端識別子となる記号を決められる
%r@ @や%r! !というように好きな記号を割り当てられる
%r< >や%r( )や%r{ }などは開く・閉じる記号が対応する
使ってない記号を割り当てることでエスケープ無しの読みやすい正規表現になる
スラッシュ(/)のエスケープ(\/)が面倒な時に便利
xオプションを使う
空白・改行・コメントなどが無視される
適切な位置に改行を入れ、コメントをつけることで何をしてるのか更に分かりやすくなる