簡體   English   中英

用str.translate刪除反斜杠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM