将GPS点分为纬度和经度常规

时间:2011-03-13 15:59:18

标签: python regex

给出以下GPS点的字符串表示......

(40.714353, -74.005973)

如何使用Python执行字符串拆分以获取纬度和经度作为单独的标记 - 没有任何多余的字符(空格和括号)?

2 个答案:

答案 0 :(得分:7)

您可以使用ast.literal_eval()来解析字符串:

>>> import ast
>>> coord = "(40.714353, -74.005973)"
>>> ast.literal_eval(coord)
(40.714353000000003, -74.005972999999997)

答案 1 :(得分:6)

您不需要正则表达式:

>>> str = "(40.714353, -74.005973)"
>>> tuple(float(x) for x in str.strip('()').split(','))
(40.714353, -74.005973)

如果您想使用字符串而不是数字,请使用x.strip()代替float(x)


正则表达式解决方案可能是:

>>> import re
>>> m = re.match(r"^\(([-\d.]+), ([-\d.]+)\)$", str)
>>> m.group(1)
'40.714353'
>>> m.group(2)
'-74.005973'

这使用capture groups来提取信息。

另请参阅re documentation