我有这个凌乱的地址列表,有些是干净的,有些不是
Av. Chorrillos # 1759 Local 1082 Exterior Jumbo
Av. Balmaceda N° 2355 Local BS - 121 / Subterráneo sector servicios
Tarapaca N° 729
结构通常为name of street
+ N°|#|nothing
+ number
+ extra stuff
我想删除这些额外的内容,以便上面列表中的预期输出为:
Av. Chorrillos # 1759
Av. Balmaceda N° 2355
Tarapaca N° 729
我尝试使用字母组合和回顾:
([a-zA-Z\s]+\d+)
但#
和N°
给了我麻烦,所以我也尝试了将它们包括在内
([(\w|°|#)\s]+\d+)
但仍然没有运气。
我知道地址上的正则表达式是一场噩梦,但任何符合上述三种情况的正则表达式都符合我列表的95%,这对我来说已经足够了!
我在python
regex
中使用此功能以防万一。
您可以在regex101
上找到地址列表和我的正则表达式尝试(有些地址在street + number
的相关信息之前有额外的信息,但我可以搞砸那些地址
答案 0 :(得分:1)
根据您的规格。我想出了这个正则表达式。
正则表达式: ^.*?
<强>解释强>
(?:[N°#Nº]\s*)?
从字符串的开头消耗所有内容。由于匹配是懒惰的,因此匹配到下一部分(?:[N°#Nº]\s*)?
N°#Nº
匹配可选的\d+
,后跟零个或多个空格。
<p>paragrah 1</p>
<p>paragrah 2</p>
<p>paragrah 3</p>
<img src=""></img>
匹配数字。
<强> Regex101 Demo 强>