从字符串中删除所有内容..仅在其中保留数字

时间:2014-09-09 01:16:46

标签: python python-2.7

字符串可能是:

JAIDK392**8'^+%&7JDJ0204İŞÇéS29487

我想从中删除所有内容,但只留下数字。

3 个答案:

答案 0 :(得分:6)

执行此操作的一种简单方法是使用正则表达式库re

>>> import re
>>> yourString = "JAIDK392**8'^+%&7JDJ0204İŞÇéS29487"
>>> numberOnlyString = re.sub('[^0-9]', '', yourString)
>>> print numberOnlyString
'39287020429487'

答案 1 :(得分:1)

有一种方法可以在不使用任何库的情况下完成。您可以使用内置函数ord来获取字符的ASCII代码。然后你可以解析字符串中的每个字符以检查它是否是一个数字(如果它的ASCII码应该在47到58之间。

str = "JAIDK392**8'^+%&7JDJ0204İŞÇéS29487"
output = []
for char in str:
    if 47 < ord(char) < 58:
        output.append(char)
result=''.join(output)
print result

答案 2 :(得分:0)

正则表达式很棒,但另一种方法是:

>>> import string
>>> digits_only = "".join(_ for _ in your_string if _ in string.digits)