我有这样的文字:
1 Bedroom Apartment To Rent In Aldar Tower, Dubai Marina
我想提取"Aldar Tower"
和"Dubai Marina"
这就是我的尝试:
areaAndBuilding = re.search("\* Rent In \s*", value)
area = areaAndBuilding.split(",")[0]
building = areaAndBuilding.split(",")[1]
但问题是areaAndBuilding
总是None
。
答案 0 :(得分:1)
这是使用re.match
而不是re.search
的不同正则表达式,因为您只想匹配一次(search
用于多个匹配):
areaAndBuilding = re.match(".* Rent In (.*), (.*)", value)
然后,您可以使用re.group
:
area = areaAndBuilding.group(1) # Aldar Tower
building = areaAndBuilding.group(2) # Dubai Marina
在您的代码中,areaAndBuilding
始终为None
,因为您的正则表达式不正确,因此无法匹配。检查你的正则表达式是否有效的最好方法是在Python之外测试它们;我建议使用Regex101。