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

2024-10-04 01:26:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这段文字:

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


Tags: toinresearchvaluesplit文字tower
1条回答
网友
1楼 · 发布于 2024-10-04 01:26:06

这里有一个不同的正则表达式,它使用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

相关问题 更多 >