【发布时间】:2020-12-18 14:55:27
【问题描述】:
我有几组字符串,数字后跟单词,数字和单词混杂等。 例如,
"Street 50 No 40", "5, saint bakers holy street", "32 Syndicate street"
我正在尝试将街道名称与公寓号码分开。
这是我当前的代码:
import re
pattern_street = re.compile(r'[A-Za-z]+\s?\w+\s?[A-Za-z]+\s?[A-Za-z]+',re.X)
pattern_apartmentnumber = re.compile(r'(^\d+\s? | [A-Za-z]+[\s?]+[0-9]+$)',re.X)
for i in ["Street 50 No 40", "5, saint bakers holy street", "32 Syndicate street"]:
match_street = pattern_street.search(i)
match_apartmentnumber = pattern_apartmentnumber.search(i)
fin_street = match_street[0]
fin_apartmentnumber = match_apartmentnumber[0]
print("street--",fin_street)
print("apartmentnumber--",fin_apartmentnumber)
哪个打印:
street-- Street 50 No
apartmentnumber-- No 40
street-- saint bakers holy street
apartmentnumber-- 5
street-- Syndicate street
apartmentnumber-- 32
我想从第一个街道名称中删除“否”。 即如果有任何街道以No 后跟一个数字结尾,则需要将其作为公寓号,
而不是街道。
我该如何为上面的示例字符串执行此操作?
【问题讨论】:
-
我喜欢这个构造
[\s?]+,正则表达式中的空格很重要
标签: python python-3.x regex re