方案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/