【发布时间】:2020-01-21 03:53:59
【问题描述】:
我的数据包含诸如“ms2p5”、“ms3”、“ms10”之类的字符串,我需要将其提取为转换为数字的数字,如下所示。
'ms2p5' => 2.5
'ms3' => 3
'ms10' => 10
我尝试了下面的正则表达式,它能够得到匹配。一个问题是在提取的字符串中间有一个字符的值,如“2p5”。拥有一个能够很好地处理所有这些情况同时将它们转换为数值的通用函数的正确方法是什么?
import re
re.search(r'\d+[p]*\d*', str).group()
【问题讨论】:
-
你目前的正则表达式有什么问题?
-
".".join(re.findall(r'\d+', string))呢?