今日の教室はいつになくスッカスカでしたとさ。【TECH::EXPERT】

Ruby TECH::EXPERT プログラミング 応用カリキュラム編 正規表現

【本日のメニュー】
・記号で区切られた文字列の一部を抽出
・余分な記号排除と大文字揃え
・妥当性チェック
・理解度チェックテスト

【記号で区切られた文字列の一部を抽出】
用途はちょっと違うけど、サイト調査のためにエクセルでカンマ区切りのデータを無理やり切り離す的なことやったことがあり、
それに雰囲気似てるなと感じた。

person = "女,会社員,29歳,ステーキ"
#personに代入された文字列はカンマ区切りがされている
#年齢だけ取り出したい
person.split(/[,]/)[2]
# => “29歳”
#personの中を区切るため「split」メソッドを使う、
#カンマ区切りをするよう「,」を指定
#区切られ配列になるので、3番目を指定するために[2]をつける

 

【余分な記号排除と大文字揃え】
クレジットカードの番号入力かなんかに使いそうですよね。
・XXXX-XXXX-XXXX-XXXXのハイフンとる
・名義の名前が小文字で入っていても大文字に直す
クレカ入力の時にうっかり小文字で入れてもなんで承認通るんだろう。
人がいちいちチェックなんてしてないよね?まさかと思ったけどこう言うことだったんだと理解。

name = "firstname: kaori ,lastname: oka"
name = name.gsub(/firstname:/, "")
#置換で「firstname:」を空欄で上書き
name = name.gsub(/lastname:/, "")
#置換で「lastname:」を空欄で上書き
name = name.gsub(/,/, "")
#置換で「,(カンマ)」を空欄で上書き
name = name.gsub(‘ ', '')
#置換で「 (半スペ)」を空欄で上書き
name = name.upcase
#nameの変数に代入されたものを、「upcase」で大文字に変換して代入
puts name
# => KAORIOKA

 

【妥当性チェック】
当たり前のようにサービスの登録画面にある機能ですよね。
自力で考えようとすると大変だけど。
でも、誰かがすでに考えてくれているなら、
それに乗っかって時短して新たな価値を生み出すことに時間をかけたい派

valid_address = /\A[a-zA-Z0-9_\#!$%&`'*+\-{|}~^\/=?\.]+@[a-zA-Z0-9][a-zA-Z0-9\.-]+\z/
mail_address = "rubytips86@example.com"
mail_address.match(valid_address)

[参考]メールアドレスの妥当性を正規表現でチェックする
http://rubytips86.hatenablog.com/entry/2014/03/28/135838

【理解度チェックテスト】
LESSON2 開発に必要な周辺の知識に再チャレンジ!
90点!やった!対策したからできたね!
範囲が狭いこともあってクリア!
本試験では全体的にわからんだったのですが、
理解度チェックテストは一部の範囲の問題が出るので、付け焼き刃でなんとかなる。
これを実戦で使えるかどうかは鍛えによりますが。
とにかく、私は先に進みます。