使用python提取纬度和经度的正则表达式

时间:2017-05-17 16:13:57

标签: python regex

我需要使用python中的regex提取下面格式的lat long。

( - 17.23465,4.6883)

我需要一个人来指导我,因为我是这个话题的新手。

由于

2 个答案:

答案 0 :(得分:1)

执行所需操作的最简单的正则表达式是\(([^,]*),([^\)]*)\)

最明确的正则表达式解决方案是:

> import re
> match = re.match('^\((?P<lat>-?\d*(.\d+)),(?P<long>-?\d*(.\d+))\)$',
                   '(-17,23465,4.6883)')
> float(match.group('lat'))
-17.23465
> float(match.group('long'))
4.6883

使用字符串操作的最简单的解决方案是:

> latlong = '(-17,23465,4.6883)'
> lat, long = [float(x) for x in latlong[1:-1].split(',')]

要在实践中了解有关正则表达式的更多信息,请使用How to run a method before/after all class function calls with arguments passed?(设置 python 风格)。要了解有关Python中正则表达式的更多信息,请阅读Online regex tester

答案 1 :(得分:0)

假设您需要单独使用纬度和经度,并且您提供的值是一个字符串,您可以这样做:

val = '(-17.23465,4.6883)'
val = val.replace('(', '').replace(')', '').split(',')

lat = val[0]
lon = val[1]

<强>输出:

  

lat:-17.23465

     

lon:4.6883