在Python中逆向str.translate
如果我想用translate方法把"He123llo Wor456ld!"中的数字去掉,我可以这样做:
from string import digits
str = "He123llo Wor456ld!"
str = str.translate(None, digits)
print str
>> Hello World!
那我该怎么做才能把数字反过来提取出来,得到123456
呢?
3 个回答
0
这是一种不太干净的方法,但确实有效!
your_string = "He123llo Wor456ld!"
s=""
for digit in your_string:
try:
int(digit)
s+=digit
except:
pass
print s
输出结果:
>>> 123456
1
from string import letters, punctuation, whitespace
str = "He123llo Wor456ld!"
str = str.translate(None, letters + punctuation + whitespace)
print str
>> 123456
我还是觉得这样“滥用”翻译有点奇怪,不过没办法...它确实有效。
2
你可以使用类似这样的代码
from string import digits
s = "He123llo Wor456ld!"
s_ = s.translate(None, digits)
s = s.translate(None, s_)
print s
>>> 123456