Python 如何使用正则表达式在列表中搜索浮点模式

Python 如何使用正则表达式在列表中搜索浮点模式,python,regex,Python,Regex,因此,我有以下数据列表: lst_text = ['---', 'Project-Desc: kytos/kytos-end-to-end-tester', 'Last-Status: failed', 'pytest summary: 12 failed, 49 passed in 2919.10 seconds '] 我需要从那里提取“2919.10秒” 我有以下代码: summary = re.findall(r"\d+ \w+", lst_text[3]) 到目

因此,我有以下数据列表:

lst_text = ['---', 'Project-Desc: kytos/kytos-end-to-end-tester', 'Last-Status: failed', 'pytest summary:  12 failed, 49 passed in 2919.10 seconds ']
我需要从那里提取“2919.10秒”

我有以下代码:

summary = re.findall(r"\d+ \w+", lst_text[3])
到目前为止,提取摘要的正则表达式不考虑小数点,还需要在数字和单词之间留一个空格。当前代码行只返回“10”

但是,我需要重新检查正则表达式,以便它也包括浮点数


有什么建议吗?

要从列表中的第四项中获取后跟单词after的浮点值,请执行以下操作:

\b\d+\.\d+\s+\w+
  • \b
    防止部分匹配的单词边界
  • \d+\.\d+
    匹配1+位、a
    和1+位
  • \s+\w+
    匹配1+空格字符和1+单词字符
更新的示例代码

import re
lst_text = ['---', 'Project-Desc: kytos/kytos-end-to-end-tester', 'Last-Status: failed', 'pytest summary:  12 failed, 49 passed in 2919.10 seconds ']
summary = re.findall(r"\b\d+\.\d+\s+\w+", lst_text[3])
print(summary)
注意
\w
也可以匹配一个数字,因此
2919.10 12345
也可以匹配

输出

['2919.10 seconds']

要从列表中的第四项中获取后跟单词after的浮点值,请执行以下操作:

\b\d+\.\d+\s+\w+
  • \b
    防止部分匹配的单词边界
  • \d+\.\d+
    匹配1+位、a
    和1+位
  • \s+\w+
    匹配1+空格字符和1+单词字符
更新的示例代码

import re
lst_text = ['---', 'Project-Desc: kytos/kytos-end-to-end-tester', 'Last-Status: failed', 'pytest summary:  12 failed, 49 passed in 2919.10 seconds ']
summary = re.findall(r"\b\d+\.\d+\s+\w+", lst_text[3])
print(summary)
注意
\w
也可以匹配一个数字,因此
2919.10 12345
也可以匹配

输出

['2919.10 seconds']

您可以使用
\b\d+(?:\。\d+)\w+
但是
\w
也匹配一个数字。您是否只想要
2919.10秒
,并且
\w+
可以包含数字?从另一个对话中,以下模式:“\b\d+\.\d+\s*\w+”也适用于我的预期用例,即匹配“2919.19秒”和“45.13s”并提取浮点数。或者
\b\d+\.\d+\s*[^\w\ud]+
如果除数字或下划线外,后面应该有单词字符。您可以使用
\b\d+(?:\。\d+)\w+
但是
\w
也匹配一个数字。您是否只想要
2919.10秒
,并且
\w+
可以包含数字?从另一个对话中,以下模式:“\b\d+\.\d+\s*\w+”也适用于我的预期用例,即匹配“2919.19秒”和“45.13s”并提取浮点数。或者
\b\d+\.\d+\s*[^\w\ud]+
如果除数字或下划线外,后面应该有单词字符。