1 |
text = '大阪府 大阪市 〇区〇〇 1-22-333 python-auto402号' |
という住所があったとします。
これを簡単に住所・番地・建物名にする方法を考えたので備忘録として残します。
住所の判定は左から順番にチェックしてアラビア数字があるところまでとします。
次にそこから
[‘1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’0′,’丁’,’目’,’-‘,’ー’,’号’]
以外の文字があればそこまでを番地とします。
残ったtextを建物名と判断します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
text = '大阪府 大阪市 〇区〇〇 1-22-333 python-auto402号' #念のため半角に変換する text.translate(str.maketrans({chr(0xFF01 + i): chr(0x21 + i) for i in range(94)})) juusyo = '' banti = '' for i in range(0,len(text)): if text[i] in ['1','2','3','4','5','6','7','8','9','0']: break else: juusyo += text[i] text = text.replace(juusyo,'') for i in range(0,len(text)): if not text[i] in ['1','2','3','4','5','6','7','8','9','0','丁','目','-','ー','号']: break else: banti += text[i] text = text.replace(banti,'') print(juusyo) print(banti) print(text) |
プログラムを実行すると・・・
1 2 3 |
#大阪府 大阪市 〇区〇〇 #1-22-333 # python-auto402号 |
のように3分割されました。
もっといい方法があると思うので知ってる方はご指摘下さい。