Python 使用正则表达式将字符串小数转换为字符串Int
我有下面的线Python 使用正则表达式将字符串小数转换为字符串Int,python,regex,string,Python,Regex,String,我有下面的线 line='P1: 6.0, P2: 5.0, P3: 10.3, P4: 7.0, P5: 10.0, P6: 6.0, P7: 4.0, P8: 5.8, P9: 5.0, P10: 5.0' 我只想删除.0并保留4.5或10.3之类的值。所以我想要的是 line='P1: 6, P2: 5, P3: 10.3, P4: 7, P5: 10, P6: 6, P7: 4., P8: 5.8, P9: 5, P10: 5' 我试着这么做 重新导入 关于sub(r'.0(?=,)
line='P1: 6.0, P2: 5.0, P3: 10.3, P4: 7.0, P5: 10.0, P6: 6.0, P7: 4.0, P8: 5.8, P9: 5.0, P10: 5.0'
我只想删除.0并保留4.5或10.3之类的值。所以我想要的是
line='P1: 6, P2: 5, P3: 10.3, P4: 7, P5: 10, P6: 6, P7: 4., P8: 5.8, P9: 5, P10: 5'
我试着这么做
重新导入
关于sub(r'.0(?=,),'',第行)
它不起作用。非常感谢您的帮助。您只需做一个简单的替换,例如:
line=“P1:6.0,P2:5.0,P3:10.3,P4:7.0,P5:10.0,P6:6.0,P7:4.0,P8:5.8,P9:5.0,P10:5.0”
打印(换行('.0','')
>>>P1:6,P2:5,P3:10.3,P4:7,P5:10,P6:6,P7:4,P8:5.8,P9:5,P10:5
使用
re.sub(r'\b\.0\b','',第行)
看
节点
解释
\b
字字符(\w)和非字字符之间的边界
\。
'.'
0
'0'
\b
字字符(\w)和非字字符之间的边界
请更详细地描述“不起作用”-发生了什么?错误?意外的结果?实际上它对字符串的最后一个元素无效。输出为“P1:6,P2:5,P3:10.3,P4:7,P5:10,P6:6,P7:4,P8:5.8,P9:5,P10:5.0”,您也可以使用
re.sub(r'(?@Wiktor Stribiżew哇!看起来很复杂,感谢您的澄清和努力谢谢!更简单:)@svn_21 Try'5.05'。替换('0',“”)
,你希望这样吗?如果只有一个十进制数字,你只能像上面提到的@WiktorStribiżew一样使用它。@Wiktor Stribiżew数据只有一个十进制数字,所以上面的代码对我很有效。这个代码也有效:)