且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python-将字符串中的单词与字符串列表匹配

更新时间:2022-03-14 23:43:58

我会做

matches = [ s for s in states if s in postal_addr ]

然后,如果要从邮政地址获取字符串:

Then, if you want to get the string from the postal address:

import re
if matches:
    extracted = re.findall( matches[0],  postal_addr)[0]

..但这不适用于城市名称包含不同州的城市/州组合,例如postal_adr = '1 Arrowhead Dr, Kansas City, Missouri 64129'states = ["New York", "California", "Nebraska", "Idaho", "Missouri", "Kansas"]等.在这种情况下

..but this won't work for city/state combos where the city name contains a different state, for example if postal_adr = '1 Arrowhead Dr, Kansas City, Missouri 64129' and states = ["New York", "California", "Nebraska", "Idaho", "Missouri", "Kansas"] etc. In this case

import re
if matches:
    extracted = [(re.search(m, postal_addr).start() , m) for m in matches ]
    extracted = sorted( extracted )[-1][1]