在Python中逆向str.translate

1 投票
3 回答
663 浏览
提问于 2025-04-18 18:38

如果我想用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

撰写回答