2024-04-18 10:13:14 发布
网友
我试图用这个字符串创建一个浮点:4\xb1.3189125061 我当前使用的是:
4\xb1.3189125061
re.sub(r'[^\d.-]+', "", "4\xb1.3189125061")
但是这只输出:4.3189125061,并且总是删除\xb后面的数字。 有人知道解决这个问题的办法吗?在
4.3189125061
\xb
Python在\xb1转义代码中看到一个字符。1不是单独的字符:
\xb1
1
>>> len('\xb1') 1
因此,它不是数字、点或短划线,正则表达式会将其删除。在
您可能需要弄清楚\xb1字节在原始数据中的含义。例如,在拉丁语-1中,B1码位代表±字符,使您的值看起来像:
±
可能和你给它的含义不同。在
如使用ord所示,“\xb1”是单个字符:
ord
>>> ord('\xb1') 177 >>>
要解决此问题,可以在字符串前面添加一个“r”:
或使用repr:
repr
>>> import re >>> re.sub(r'[^\d.-]+', "", repr("4\xb1.3189125061")) '41.3189125061' >>>
Python在
\xb1
转义代码中看到一个字符。1
不是单独的字符:因此,它不是数字、点或短划线,正则表达式会将其删除。在
您可能需要弄清楚
^{pr2}$\xb1
字节在原始数据中的含义。例如,在拉丁语-1中,B1码位代表±
字符,使您的值看起来像:可能和你给它的含义不同。在
如使用
ord
所示,“\xb1”是单个字符:要解决此问题,可以在字符串前面添加一个“r”:
^{pr2}$或使用
repr
:相关问题 更多 >
编程相关推荐