質問: 住所から市町村名などを切り出す 県名から始まったり、県は省略されて市名からはじまったりと、バラバラの住所データから、都道府県名が何で市町村名は何で区は何で残りの住所は何で─というようなものを取り出したいのですが、うまい方法はありませんでしょうか。 東京の場合は2番目に区が来るとか、町はどの階層に入れるのかとか、そういった細かい事は考えなくても良い内容です。 下記のプログラムでは駄目でした。切り出せない上に文字化けします。どうしてでしょう。(東京を別にしているのは京都対策です。) if ($juusho=~tr/^(東京都)//d) {$todoufuken=$1;} elsif($juusho=~tr/^(.+?[県府道])//d) {$todoufuken=$1;}
回答: 「都」や「区」「町」などの文字が間違いなく入力されているという条件かでならば、それらの文字を使って切り分けることができます。 しかし、もしそうでないのなら、基本的に不可能だと思った方がいいでしょう。 よっぽど巨大なデータベースを作らない限り。