2022-09-16

rubyで住所情報から都道府県を取り出す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

 以下のような住所情報があったとします。

東京都府中市1-2-3 道路横ビル

これから都道府県と取り出し、それ以外と分離する場合は、以下のような感じで可能です。

org = "東京都府中市1-2-3 道路横ビル"

pref = org.match(/^.+?[都道府県]/).to_s

addr = org.sub(pref,"")

prefに都道府県、addrにそれ以外が入る感じなります。

都道府県取得の正規表現に?を忘れると

prefが「東京都府中市1-2-3 道」と最長一致なってしまうのでご注意です。


※やっぱりこれだと京都府がとれないです。

pref = org.match(/^.{2,3}[都道府県]/).to_s

の方がよさそうです。


※※上記では東京都府中市が東京都府になっちゃいます。最短一致させるための?を忘れてました。

pref = org.match(/^.{2,3}?[都道府県]/).to_s

の方がよさそうです。