我在创建一个函数时遇到问题,该函数采用包含长度值的字符串(例如:'32.0 mm / 1.259"`)并仅返回mm中的值。
我当前的函数parse
只能处理只有mm值的字符串,但如果mm和英寸值都存在则不能。
任何帮助是极大的赞赏!
正则表达式模式: re.sub("[^0-9.\-]", "", str)
import re
def parse(str):
if not str:
return None
str = str.lower()
return float(re.sub("[^0-9.\-]", "", str))
tests = ['12.3 mm', '12.3mm', '32.0 mm / 1.259"', '32.0mm / 1.259"']
for s in tests:
print( parse(s) )
预期产出
12.3
12.3
32.0
32.0
实际输出
12.3
12.3
ValueError: could not convert string to float: '32.01.259'