這應(yīng)該很簡單,但無法讓它工作。我有一些由地理定位 MapQuest API 返回給我的字符串。我想將州名與這樣的字符串隔離開來,這有點(diǎn)困難。想想'Pennsylvania Avenue'(在DC),然后是'Washington',它可以是一個州,也可以是一個街道名稱和一個城市。s = "Goldman Sachs Tower, 200, West Street, Battery Park City, Manhattan Community Board 1, New York County, NYC, New York, 10282, United States of America"s = "9th St NW, Logan Circle/Shaw, Washington, District of Columbia, 20001, United States of America"s = "Casper, Natrona County, Wyoming, United States of America"但是我注意到 MapQuest 在郵政編碼之前寫了州名稱,靠近字符串的末尾。要獲取州名,這很有效,也就是說,如果有郵政編碼:s = s.split(",")s = [x.strip() for x in s]state = s[-3]但是,當(dāng)沒有 zip code 時,如在第三個字符串中,那么我得到縣(納特羅納縣)。我試圖通過以下方式消除郵政編碼:s = s.split(",")s = [x.strip() for x in s if '\d{5}' not in x ]但是正則表達(dá)式'\d{5}'不起作用 - 我想要懷俄明州,而不是納特羅納縣。
1 回答

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個贊
使用re:
import re
s = "9th St NW, Logan Circle/Shaw, Washington, District of Columbia, 20001, United States of America"
s = s.split(",")
number = re.compile(r"\d{5}")
s = [x.strip() for x in s if not number.search(x)]
print s
print s[-2]
輸出:
['9th St NW', 'Logan Circle/Shaw', 'Washington', 'District of Columbia', 'United States of America']
District of Columbia
添加回答
舉報(bào)
0/150
提交
取消