我需要使用python中的regex提取下面格式的lat long。
( - 17.23465,4.6883)
我需要一个人来指导我,因为我是这个话题的新手。
由于
答案 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