代々木で働く超新米エンジニアの足跡

代々木で働くエンジニアです。超新米です。

<Ruby>正規表現で都道府県を一致させる スクレイピング ログ 不要な空白削除strip

都道府県を一致させる



今回は都道府県の前に空白があるのでこうした。

addr = "東京都"
addr.match(/\S{2,3}[都道府県]/).to_s
#=>東京都

/Sは、空白を除く
{2,3}は2~3文字



参考:【Ruby】住所から都道府県を正規表現で取り出す【正規表現】 - Qiita

ログ



ログファイルを用意しておくとどこで間違えたか分かりやすい。

実際には、スクレイピングで膨大なかずの情報を取得するときどこでミスっているかわかるよう
クローリングしているURLをログファイルに書き込むようにした。

File.open(file_name,'w') {|file|
  file.puts something
}

プログラムの途中でfile_nameに代入されているファイルを開き、
file.puts で something という変数の中身を書き込んでる

不要な空白を削除する-strip

正規表現で空白を除く一致がいまいちわからないので、取り出したものの不要な空白を削除することにした

str = "   Hello World.    "

# とにかく全部の空白がいらない場合
str.gsub(" ", "")               # => "HelloWorld."

# 単語の間にある空白は削除したくない場合
str.strip                       # => "Hello World."

# 左側にある空白のみ削除したい場合
str.lstrip                      # => "Hello World.    "

# 右側にある空白のみ削除したい場合
str.rstrip                      # => "   Hello World."

# 破壊的メソッド
str.strip!
str                             # => "Hello World."

参考:Ruby - 文字列中に存在する必要のない空白を削除する方法 - Qiita