住所を
・市町村
・市町村以降
に区切りたいです。
現状は
一番目の素子 + 「市」
<br>
二番目の素子
としていますが、
二番目の素子に「市」が入るケースが発生し対応できないでいます。
下記の様な方法も考えたのですが、一番目の素子に「市」が入ってきた場合同じような事が発生すると考えられるため、
悩んでいます。
一番目の素子 + 「市」
<br>
「市」の後ろの残り部分
解決方法があれば教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答6件
0
結論から言えば、データを全くなしにやることは不可能です(例えば、「佐賀県杵島郡大町町/大町」のようなものは、データがないと切れません)。
投稿2017/08/08 02:45
総合スコア146550
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
地方自治団体(都道府県・市区町村)については、総務省により全国地方公共団体コードが振られており、そのデータをもとにした表記であれば「どこまでが市区町村か」は最長一致で切ることができます。
ただ、都道府県を省略された場合、次のような例については判断できなくなります。
- 府中市(東京都と広島県)
- 伊達市(福島県と北海道)
※この他群名や町名が重複する例もあります。上川郡なんて北海道に3か所(律令国としては別の国にあるのだが、地理上は隣接していて、あまつさえ同一振興局内に2つある)あって、旧国名を付記しないと区別しきれないなんてのも
また、表記揺れがあると処理しきれないのは maisumakun さんのコメントの通りです。
入力データ自体が正規化(総務省データに書かれているのと同じ表記を使う)されていないと、現実には難しいです。
郵便番号があれば、郵便番号データには該当する地方公共団体コードが含まれますので、そちらをもとにしたほうが良いかもしれません。
投稿2017/08/08 03:21
編集2017/08/08 03:31総合スコア13707
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
解決方法があれば
⇒そもそも分割しなくてはいけない理由は何でしょうか?
改行等を入れたい 程度であれば、つなげる仕様のままにする等でも良いとは思います。
また、画面に入りきらない・・・等であっても、
特定の長さ以上の場合、その長さ以降は「…」とする等
仕様面の解決方法もある気がします。
⇒分割にこだわりがあり、以下の情報を持っていれば、以下のサイトでダウンロードしたデータで
マッピングして分割する方法があります。
・郵便番号:郵便局のホームページよりダウンロード
・緯度経度:国土交通省より利用規約に同意してダウンロード
⇒「いやいや、わざわざダウンロード・管理しなくても良い方法はない?」ということであれば、
以下のサイトで分割したい住所をキーワードとしてAPIに投げれば、
分割してレスポンスされるかもしれません。
キーワードによる住所検索 API
※試してないので分かりませんが、多少の揺らぎもある程度は分割してくれるかもしれません。
投稿2017/08/08 04:02
総合スコア760
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
住所分割についてのアプローチについてですが、目的によって異なると思います。
・目的が一過性のデータ補正
正規表現などを用いながら分割精度を上げ、その分割でも対応できないものが極力少ない状態になったらロジックを考えるよりも直接修正した方が労力は少ない。
・目的が画面等の入力データを分割
他の方の回答にもあるように、揺れがあるので複雑なロジックを持ち込むと色々と大変です。
区切りを行うのは入力者の判断に任せるということが許されるなら、単純に空白で区切った入力とするとかシンプルなものにした方が良いかと。
※区切った結果を表示した上での登録にするなどの工夫は余地があるところですが。
投稿2017/08/08 03:20
編集2017/08/08 04:05総合スコア25430
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
市町村名は、動的なものではなく合併や人口増減などの要因がなければ一般的に不変な情報だと思います
あらゆるパターンに対応する処理を考えるよりは、全国市町村名リストを入手して単純比較によって抽出分割した方が簡単ではないでしょうか?
新しい市町村が誕生してその文字パターンが新しいケースであってもリストの更新だけで対応できますし
投稿2017/08/08 02:54
総合スコア3116
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/08 02:56 編集

退会済みユーザー
2017/08/08 03:15

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。