繁体   English   中英

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

[英]Python Regex match 2nd or 3rd word in line

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

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM