Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用正则表达式将字符串小数转换为字符串Int_Python_Regex_String - Fatal编程技术网

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数据只有一个十进制数字,所以上面的代码对我很有效。这个代码也有效:)