Skip to main content
 首页 » 编程设计

Python 正则表达式匹配行中的第 2 个或第 3 个单词

2024年10月17日3798°冷暖

我正在尝试使用正则表达式将行分成 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'] 

RegEx Demo