我需要在python中使用正则表达式提取以下格式的纬度。
(-17.23465,4.6883(
我需要一些人来指导我,因为我是这个话题的新手。
谢谢
最简单的
正则表达式是 (([^,]*),([^)]*))
。
最清晰的正则表达式解决方案是:
> 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(',')]
要在实践中了解有关正则表达式的更多信息,请使用在线正则表达式测试器(设置 python 风格(。要了解有关 Python 中正则表达式的更多信息,请阅读正则表达式 HOWTO。
假设您想要分别显示纬度和经度,并且您提供的值是一个字符串,您可以执行以下操作:
val = '(-17.23465,4.6883)'
val = val.replace('(', '').replace(')', '').split(',')
lat = val[0]
lon = val[1]
输出:
纬度: -17.23465
伦敦: 4.6883