使用 Python 3.4 中的正则表达式,如何从下面的文本中提取城市名称?
replacement windows in seattle wa
basement remodeling houston texas
siding contractor new york ny
windows in elk grove village
有时前面有城市名\sin\s
,有时则不然。有时它有一个笼统的词,比如“窗户”、“改造”……任何东西。有时末尾没有州全名或州缩写。
是否有一个正则表达式可以捕获上述条件?
这是我到目前为止所尝试过的,但它只捕获“西雅图”。
import re
l = ['replacement windows in seattle wa',
'basement remodeling houston texas',
'siding contractor new york ny',
'windows in elk grove village'
]
for i in l:
m = re.search(r'(?<=\sin\s)(.+)(?=\s(wa|texas|ny))', i)
m.group(1)
你所追求的是正则表达式不可能实现的。正则表达式需要字符串模式才能工作。就您而言,该模式似乎不存在或可以采取多种形式。
您可以做的是使用搜索高效的数据结构并将字符串拆分为单词。然后,您将检查每个单词,看看它是否在您的搜索高效数据结构中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)