我想创建一个浮出该字符串的删除所有非数字:4\xb1.3189125061
我目前使用这样的:麻烦从字符串
re.sub(r'[^\d.-]+', "", "4\xb1.3189125061")
但这只是输出:4.3189125061
始终删除后的数字\xb
。 有没有人知道这个解决方案?
我想创建一个浮出该字符串的删除所有非数字:4\xb1.3189125061
我目前使用这样的:麻烦从字符串
re.sub(r'[^\d.-]+', "", "4\xb1.3189125061")
但这只是输出:4.3189125061
始终删除后的数字\xb
。 有没有人知道这个解决方案?
如图使用ord
, “\ XB1” 是单个字符:
>>> ord('\xb1')
177
>>>
要解决这个问题,可以添加一个 “R” 中的字符串的前面:
>>> import re
>>> re.sub(r'[^\d.-]+', "", r"4\xb1.3189125061")
'41.3189125061'
>>>
或使用repr
:
>>> import re
>>> re.sub(r'[^\d.-]+', "", repr("4\xb1.3189125061"))
'41.3189125061'
>>>
Python看到一个字符为\xb1
转义码。该1
不是一个单独的字符:
>>> len('\xb1')
1
因此,它不是一个数字,一个点或短划线和正则表达式中删除。
您可能需要弄清\xb1
字节在原始数据中的含义。例如,在拉丁美洲-1,B1码点代表的是±
性格,使你的价值是这样的:
4 ± .3189125061
也可以有从你给它不同的含义。
什么是预期*输出? '\ xb1'是一个python转义码,顺便说一句。 –