[英]Obtain house number from street address
設置
我有包含英國格式地址的字符串,例如address = '6A McCarthy Way'
。
我需要從地址中獲取門牌號,例如house_number = '6A
當前代碼
我有以下工作代碼,
position = re.search('\d+', address).start()
if position == 0:
for i in range(0,100000):
if address[position + i] != ' ':
house_number = address[:position + i + 1]
else:
break
else:
house_number = address[position:]
對於address = '6A McCarthy Way'
和address = 'McCarthy Way 6A'
,代碼返回house_number = '6A'
。
問題
此代碼假設
address
的開頭或結尾address = '6A, McCarthy Way'
或address = '6 McCarthy Way'
address
沒有錯誤——例如從不address = '6AMcCarthy Way'
最后,即使假設適用於所有情況,我也不確定這是最 Pythonic 的方法。
如何改進代碼?
使用re.search
import re
address = '6A McCarthy Way'
address2 = 'McCarthy Way 6A'
address3 = 'McCarthy Way 6AAAA'
print(re.search("(\d+\w*)", address).group())
print(re.search("(\d+\w*)", address2).group())
print(re.search("(\d+\w*)", address3).group())
輸出:
6A
6A
6AAAA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.