[英]Remove backslash with str.translate
我編寫了以下Python2.7代碼,以從某些字符串中刪除數字和反斜杠字符(\\)。 我嘗試使用str.translate方法,因為我了解到它非常有效。 下面的代碼成功刪除了字符串x中的數字,但無法刪除y中的單個反斜杠。 我做錯了什么?
import string
x = 'xb7'
y = '\xb7'
print x.translate(None, '\\' + string.digits)
print y.translate(None, '\\' + string.digits)
您沒有帶反斜杠的字符串。 x
具有字符'x'
, 'b'
和'7'
,而y
具有單個字符'·'
,由十六進制代碼b7
。 如果要使用文字字符串'\\xb7'
(其中包含四個字符),請通過在文字前面加上r
來使用原始字符串。
>>> import string
>>> print r'\xb7'.translate(None, '\\' + string.digits)
xb
當實際上有一個反斜杠要刪除時,您的算法效果會更好。 Tigerhawk已經向您顯示了您的十六進制字符串。 這是另一個簡單的示例,可以顯示未更改的原始y 。
import string
x = 'xb7'
y = '\\xb7'
print x, y
kill = '\\' + string.digits
print "kill", kill
print x.translate(None, kill)
print y.translate(None, kill)
print "y=", y
輸出:
xb7 \xb7
kill \0123456789
xb
xb
y= \xb7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.