我编写了下面的Python2.7代码来删除某些字符串中的数字和反斜杠字符()。我尝试使用str.translate方法,因为我已经了解到它非常有效。下面的代码成功地从字符串x中删除了数字,但是无法删除y中的单个反斜杠。我做错了什么?
import string
x = 'xb7'
y = '\xb7'
print x.translate(None, '\\' + string.digits)
print y.translate(None, '\\' + string.digits)发布于 2016-06-22 23:40:21
没有带反斜杠的字符串。x有字符'x'、'b'和'7',而y只有一个字符'·',由十六进制代码b7表示。如果您想要包含四个字符的文字字符串'\xb7',可以使用一个原始字符串,方法是在文字前面前缀一个r。
>>> import string
>>> print r'\xb7'.translate(None, '\\' + string.digits)
xb发布于 2016-06-22 23:45:38
当实际需要删除反斜杠时,您的算法工作得更好。老虎鹰已经给你看了你的十六进制绳子。下面是另一个简单的帮助示例,显示原版的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= \xb7https://stackoverflow.com/questions/37979920
复制相似问题