Pythonで正規表現:住所

住所録の住所行の検出の問題である。

手掛りは住所特有な文字だろう。


#coding: utf-8
import re
msgs = ['仙台市泉区天神澤', \
        '山梨県東八代郡大沢町', \
        '東京都千代田区霞ヶ関', \
        '北海道小樽市小牧二丁目2-3', \
        '山県有朋',\
        '布施市介']
for i, msg in enumerate(msgs):
    ms = []
    m1 = re.search(r'都|道|府|県', msg)
    ms.append(m1)
    m2 = re.search(r'郡|市', msg)
    ms.append(m2)
    m3 = re.search(r'区|町|村|大字', msg)
    ms.append(m3)
    m4 = re.search(r'丁|番|号|字', msg)
    count = 0
    for m in ms:
        if bool(m):
            count+=1
    if count >= 2:
        
        print(msg, ' OK')
    else:
        print(msg, ' NG')

規模の大きさをグループにして探す。「都・道・府・県」という文字を含んでいること。次は「郡・市」、次は「区・町・村・大字」、最後は「丁・番・号・字」。プログラムではこれらのグループ化された文字を二ヶ所以上含んでいると住所としてしている。従って「山県有朋」や「布施市介」は住所でない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です