正規表現の美学
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「正規表現の美学」を公開しました。
Rubyを利用する上で正規表現は欠かせません。最近ではJavaなどにも正規表現ライブラリが提供されていますが、Rubyでは最初から正規表現の機能が組み込まれており、文字列を色々と書こうするのに大変便利です。Rubyでの一般的な正規表現の利用方法は以下の通りです。
日付の解析例 (\d{4})-(\d{1,2})-(\d{1,2})
いきなり難しいと思われるかもしれませんが、なれればすぐに書くことができます。\dは数字をあらわします。{4}などは、前の正規表現の繰り返す回数を刺します。つまり¥d{4}は数字を4回となります。同じく{1,2}は、1回〜2回の繰り返し、となりますので、\d{1,2}は数字1回〜2回の繰り返しとなります。「()カッコ」でくくることによりグルーピングされ、前から順番に、$1、$2、と組み込み変数に代入されます。では実際に見ていきましょう。
irb(main):001:0> today=”2012-11-10″
=> “2012-11-10″
irb(main):002:0> today =~ /(\d{4})-(\d+)-(\d+)/
=> 0
irb(main):003:0> puts $1, $2, $3
2012
11
10
=> nil
=~は文字列に定義された演算子で右辺の正規表現とマッチするかどうかを判断します。正規表現にマッチすれば最初の文字の文字数を、マッチしなければnilを返します。正規表現にマッチしたものを確認したければ、組み込み変数で確認します。
この続きは以下をご覧ください
http://resocia.jp/column/337/
ソーシャルもやってます!