我有一个描述相同街道地址的混乱字符串列表。我想用正则表达式从列表中提取一个街道名称。我有另一个列表,它是根据我的偏好排序的,即应该从列表中选择哪个杂乱的“街道”模式(例如,街道、街道等)。
我的代码如下。不知何故,偏好功能不正确。 输入列表由流式多选框生成:
[
0:
"Ammerländer Heerstrasse"
1:
"Old. Ammerländer-Heerstr."
]
default_street = None
inputvalues = [
(r"str\.",r"[öäüßA-za-z\-]*str\.",r"str\.","straße"),
(r"straße",r"[öäüßA-za-z\-]*straße",'',''),
(r"strasse",r"[öäüßA-za-z\-]*strasse",r"strasse","straße"),
...more markers of street names in German...
]
# gasse
while default_street == None:
for match, str, streettorep, streetrep in inputvalues:
for row in col2selectlist:
if re.search(match, row) != None:
default_str = re.search(str, row)
default_street = re.sub(streettorep,streetrep,default_str.group())
else:
break
我希望 default_street 的结果是列表项 1 中的“Ammerländer-Heerstraße”,因为 str.在我的列表中位于 strasse 之前,但结果是列表项 0 中的“Heerstraße”。如果我反转列表,结果是相同的。
如何让我的偏好列表正常工作?
while default_street == None:
for match, str, streettorep, streetrep in inputvalues:
for row in col2selectlist:
if re.search(match, row) != None:
default_str = re.search(str, row)
default_street = re.sub(streettorep, streetrep, default_str.group())
print(default_street)
else:
break
应该具有启发性,然后您将能够解决您的问题:)