方案1:
输入:"1-0:1.7.0(00.471*kW)"
正则表达式:"[0-9]-[0-9]:1.7.0\([0]{1,}(.*)\\*kW\)"
输出:471(应该是)

方案2:
输入:"1-0:1.7.0(00.470*kW)"
正则表达式:"[0-9]-[0-9]:1.7.0\([0]{1,}(.*)\\*kW\)"
输出:47而不是470

操作:output = int(str(str(float("{0:.4f}".format(float(re.search("[0-9]-[0-9]:1.7.0\([0]{1,}(.*)\\*kW\)",linestr).group(1))))).replace(".","")).replace("*",""))

题:
当输入类似于方案2时,我希望输出为470而不是47。如何获取所有字符,包括尾随零?

最佳答案

您只需要.之后的数字:

s = "1-0:1.7.0(00.471*kW)"
print(int(re.findall(":1.7.0\([0]+\.(\d+)\\*kW\)",s)[0]))
471

s  = "1-0:1.7.0(00.470*kW)"

print(int(re.findall(":1.7.0\([0]+\.(\d+)\\*kW\)",s)[0]))
470


或者简单地:

print(int(re.findall("\([0]+\.(\d+)\\*kW\)",s)[0]))

关于python - 将“340”强制转换为整数会导致“34”丢失最后一个零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28256067/

10-12 07:03