我需要“清理”这些字符串: - (S)19º52'11,528“,19°52'11,528”。
我只需要数字,我怎么能用Python做到?
干杯,
答案 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]