我正在开发一个Python程序,它可以搜索收到的电子邮件并返回坐标。我试图创建一个正则表达式来从字符串中选择Lat/long值。(我对regex不熟悉)
下面是我用于测试的字符串之一的一个小示例:
content = """
WorkLocationBoundingBox
Latitude:30.556555Longitude:-97.659824
SecondLatitude:30.569138SecondLongitude:-97.650855
"""
我提出了Latitude:(\d+).(\d+)Longitude:(.*)
,我相信它接近我所需要的,但它将30
和556555
分为不同的组。但是,-97.659824
被正确地放入一个组中
我的理想预期结果如下:
[(30.556555, -97.659824, 30.569138, -97.650855)]
您可以使用3个捕获组,其中第一个组用于匹配单词“不久”或“纬度”
((?:Second)?)
捕获组1,可选匹配Second
Latitude:
逐字匹配(-?\d+(?:\.\d+)?)
捕获第2组,匹配可选的{\1Longitude:
对组1中匹配内容的反向引用,并匹配Longitude:
(-?\d+(?:\.\d+)?)
捕获第3组,匹配可选的{Regex demo或Python demo
输出
不太严格的模式可能匹配经度或纬度之前的可选单词字符:
Regex demo
在这种情况下,如果需要,还可以使用re.findall返回元组列表中的组值:
输出
相关问题 更多 >
编程相关推荐