替换python上的度数标志和其他

时间:2017-03-09 15:42:50

标签: string python-2.7 replace special-characters

我需要“清理”这些字符串: - (S)19º52'11,528“,19°52'11,528”。

我只需要数字,我怎么能用Python做到?

干杯,

1 个答案:

答案 0 :(得分:0)

首先,请注意您必须转义引号(简单或双重)。

然后对非数字使用re.split(),并将其包含在列表推导中,以删除re.split最后可生成的空字符串并转换为整数:

>>> import re
>>> z = '- (S) 19º 52\' 11,528", 19° 52\' 11,528"'
>>> [int(x) for x in re.split("\D+",z) if x]
[19, 52, 11, 528, 19, 52, 11, 528]

请注意,您可以使用它,但对于负数不会正常工作(-符号将被删除)

要正确处理花车,这有点复杂但只要你没有负数就可以完成:

>>> [float(x.replace(",",".")) for x in re.split("[^\d,]+",z) if x and x!=","]
[19.0, 52.0, 11.528, 19.0, 52.0, 11.528]