如何获取python字符串中的数字

时间:2011-03-09 03:34:35

标签: python

这是我的代码:

print int('adw第五代222')

显示错误:

Traceback (most recent call last):
  File "a.py", line 5, in <module>
    print int('adw第五代222')
ValueError: invalid literal for int() with base 10: 'adw\xe7\xac\xac\xe4\xba\x94\xe4\xbb\xa3222'

我能做什么,

感谢

3 个答案:

答案 0 :(得分:4)

>>> int(re.search('\d+', u'adw第五代222').group())
222

答案 1 :(得分:1)

你试图将不是数字的东西变成整数。所以这显然无法奏效。您必须从字符串中提取数字。如果您不想使用正则表达式,可以尝试这样的方法:

s = u'adw第五代222'
n = int(''.join(c for c in s if c.isdigit()))

答案 2 :(得分:0)

我想你可以使用类似的东西:

class crazyint(int):
    def __new__(cls, arg=1):
        a = ''.join([x for x in arg if x.isdigit()])
        return int.__new__(cls, a)

..允许使用crazyint('some234string434')。但我认为这更合适:

class crazyint(int):
    def __new__(cls, arg=1):
        print "whachu talkin' 'bout willis?"
相关问题