Lesson#5 正規表現と人生相談。笑
勉強だけでなく人生相談に乗ってもらうの巻
こんにちは、はくたむです。
毎日勉強頑張っているため(?)一日があっという間に過ぎていきます。
侍エンジニア塾でのレッスンも早2か月目に突入しました!
働きながら勉強ってやっぱり勉強に割ける時間がどうしても足りない!って感じがちですが、毎日コツコツ頑張っていきたいと思います。
さてそんなこんなでLesson#5の記事をまとめました!
勉強の進捗状況
そういえばこんなものもあった方がいいのかな、と思って今回から書いていきたいと思います。
ProgateのRailsコース11+道場コース4終了
進捗状況が良かったので侍のカリキュラムに入る前にProgateのRailsコースをすべて終わらせました。
難易度的にはかの有名なRailsチュートリアルと侍のオンラインカリキュラムが同程度の難易度でProgateはそれより優しい、とのこと。
Progate+オンラインカリキュラムで1か月程度、を目安に勉強を進めています。
ちなみに…Railsに入る前に触っておいた方がいい一覧はこちら
- HTML/CSS:フロントの基礎
- javascipt(jQuery):フロントの基礎+α
- Ruby:Railsの元となる言語
- SQL:データベースの扱い
- Command Line:ターミナルの操作
- Git:バージョン管理の基礎
私は全部一通りProgateでさらってからRailsに入りました。
やっておいた方がすんなり入れると思います。
Progateやっぱりめっちゃおススメです。まだって方も無料でぜひ触ってみてください!
課題のフィードバック
正規表現について調べてまとめたことをQiitaに投稿する
前回わからなかったところだ~( ;∀;)…って言ってたところですね。
結論から言えば(当然ですが)ちょっとは理解できたと思います。
https://qiita.com/hak_chami/items/ac850c648756e6e66410qiita.com
ここでも少しまとめます。
正規表現とは
色々調べてみた中で私なりに、 たくさんある文字列の中からある一定のパターンで記述されている文字列を探し出すための表現 ということなのかな、と理解しました。
Rubyにおける正規表現
正規表現は英語でRegular Expressionと言い、RubyではRegexpクラスというものが正規表現を扱うためのクラスになります。 また、正規表現と組み合わせて使えるStringクラスのメソッドがいくつかあり、今回は下記2つのメソッドについて簡単な使い方を実践しながらまとめてみました。
gsub
第一引数の正規表現にマッチした文字列を第二引数の文字列で置き換える
- 「1+10-100」という文字列の「+」と「-」を「,」に置き換えてみたいと思います。
ここで使った//の中が正規表現となっており、「|」はメタ文字[^1]で“または”という意味。 また、「+」は文字列での「+」を表したいのですが、これもメタ文字で“直前の文字やパターンが1回以上連続する”という意味を持っているため、そのまま書くとメタ文字として扱われてしまいます。 そのため、直前に「\」を付けることによってエスケープ[^2]させています。
str = '1+10-100' str.gsub(/\+|-/,',') #=> 1,10,100
[ ],slice
正規表現にマッチする部分を抜き出す
- 「誕生日は2000年12月31日です」という文字列から[]を使って生年月日だけ抜き出します。
前述の通り、//の中身が正規表現で、「\d」は“半角数字1文字”を、「+」は“直前の文字やパターンが1回以上連続する”という意味を持っています。
str = '誕生日は2000年12月31日です' str[/\d+年\d+月\d+日/] #=> 2000年12月31日
- 「私のメールアドレスはaddress_0123@mail.comです」という文字列からsliceを使ってメールアドレスの部分だけ抜き出します。(メールアドレスの部分がリンクになってしまうのでここでは@を全角にしました。)
「\w」は半角英数字と「_」を表します。 「.」は“任意の1文字”というメタ文字なので「\」でエスケープしています。
str1 = '私のメールアドレスはaddress_0123@mail.comです' str1.slice(/\w+@\w+\.\w+/) #=> address_0123@mail.com
- 「今日の運勢は大吉です!」という文字列の今日の運勢にあたる部分だけをsliceを使って抜き出します。ただし運勢の部分は文字数が変わります。
()でキャプチャする部分を指定し、第二引数で何番目かを指定することでその部分だけを抜き出すことができる。
str2 = '今日の運勢は大吉です!' str2.slice(/今日の運勢は(.+)です!/,1) #=> 大吉
ちゃんと理解して実践すれば意外と簡単なんだなぁ!と思いました。
ちなみにこれを勉強するにあたっては「プロを目指す人のためのRuby入門」を執筆されている伊藤淳一さんのQiitaがものすごいわかりやすかったです!
正規表現なんもわからん!!って方はぜひ読んでみてください(全4回です)。
https://qiita.com/jnchito/items/893c887fbf19e17d3ff9qiita.com
そして人生相談。笑
今回までにProgateのRailsをすべて終わらせたのですが、これと言った質問もなく…なんというか、勉強していてありがちなのですが「自分がどこがわかっていないかわかっていない」現象って良く起こるんですよ。
わかっていないところがわからない。
なので勉強している最中より、あとになって「あれ?!やっぱりここよくわからないかも!!」みたいなのが出てきたりするんですね。
とりあえず方針としてはわからないことが発覚した時点で分かるように努力する、としているので勉強の質問はそこそこに私の今後について少しお話させて頂きました。
具体的なことはめっちゃプライベートなことなので割愛させて頂きますが(;^ω^)
まだ自分の中でも「今後どうしていきたいのか」「どうありたいのか」「なにをしたいのか」そういったことがきちんと言語化できていないな、って感じたので、これから先勉強しながら何を目指すのかをしっかり自分の中に持ちたいなと思いました。
それにしてもちょっと今の状況では未定なことが多すぎて、どうしてもふんわりしてしまうんですけどね…改めて半年コースで良かったかなと思います。
私の場合3ヵ月じゃ絶対足りなかったと思います。
個人的なことをある程度考慮して頂いた上でどうやって仕事に繋げていくか一緒に考えてもらえるのはマンツーマンならではなのかな!と感じております。
次回の課題
Railsのアソシエーションについて調べたことをまとめてQiitaに投稿する
人生相談の後にアソシエーションについて少し講義を頂きました。
Progateでうんうん唸りながらやっていたデータベース同士の紐づけができちゃんですってすごーーい!!!
てなわけで課題やりつつカリキュラム進めつつ、また頑張っていきます。
ではまた次回!