-1

我有以下文字:

Total:                 192.5ms +/- 4.3%

我想得到 float 192.5Totallabel 只出现一次,所以我可以使用这个:Total:\s+[0-9.]+regular expression to get

Total:                 192.5

然后分裂:并得到192.5

我想192.5在一个正则表达式中直接获取浮点数。我需要什么正则表达式才能直接得到它?

4

2 回答 2

2

使用捕获组

总计:\s+([0-9.]+)

并抓住第 1 组。


>>> import re
>>> 
>>> s = 'Total:                 192.5ms +/- 4.3%'
>>> 
>>> re.search(r'Total:\s+([0-9.]+)', s).group(1)
'192.5'
于 2013-10-17T14:19:02.233 回答
1

192.5是第一个数字字符串;搜索数字字符串,然后用于group()获取该字符串。

>>> import re
>>> re.search(r'\d+\.\d+', 'Total:                 192.5ms +/- 4.3%').group()
'192.5'

或使用re.findall

>>> re.findall(r'\d+\.\d+', 'Total:                 192.5ms +/- 4.3%')
['192.5', '4.3']
>>> re.findall(r'\d+\.\d+', 'Total:                 192.5ms +/- 4.3%')[0]
'192.5'
于 2013-10-17T14:18:26.057 回答