我正在尝试使用正则表达式将行分成 3 个部分,典型的行适合这种模式:-30.345 150.930 112.356
我正在使用 lat = float(re.match('[^\s]+', line).group(0)) 很好地提取第一部分数据,但是无法正确定位第二个和第三个数字。
我已经尝试/正在尝试 long = float(re.match('.*?\s(\S+)\s.*?', line).group(0))但这是返回整个字符串,直到第二个空格。我如何才能仅定位这些字符串中的第二个数字和第三个数字?
请您参考如下方法:
如果你不能做 split 那么你可以在开始时用可选的 - 或 + 匹配数字:
>>> s = '-30.345 foo 150.930 abc 112.356 another .123'
>>> re.findall(r'([+-]?\d*\.?\d+)', s)
['-30.345', '150.930', '112.356', '.123']
