我想創建一個浮出該字符串的刪除所有非數字: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轉義碼,順便說一句。 –