開発環境
ruby 2.6.5
Ruby on Rails 5.2.5
本題
スクレイピングしてきたデータを使いやすいようにする
こんなふうに origin_shrine
のデータが入っていてこのままだと chatkick
で使えない
やりたいことは( の前だけを取り出したい
今回のパターンだと使いたいのは熊野三山
そのために使うのは前方参照
a = chart_shinto.origin_shrine.match(/(/).pre_match
変数に match
メソッドをつかって( を正規表現で探し当てる
そして pre_match
メソッドをつかうことでその前の値を返す
実際に見てみると
ちゃんととれてる
で、ここからが本題
このままだと ( がないときにエラーが発生する
なぜなら nil
に対して pre_match
メソッドを実行する形になるから
実際全てのデータを確認して( をつけるようにしたけど不安があった。
なのでぼっち演算子をつかって match
の返り値が nil
だったら pre_match
を実行しないようにする
コードは
chart_shinto.origin_shrine.match(/(/)&.pre_match
これなら( がなくてもエラーが起きない