python我的正则表达式有什么问题

时间:2016-03-19 18:42:42

标签: python python-2.7

我有这样的文字:

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

1 个答案:

答案 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