[英]how to get the number in a python string
這是我的代碼:
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'
我能做什么 ,
謝謝
>>> int(re.search('\d+', u'adw第五代222').group())
222
您正在嘗試將非數字的東西轉換為整數。 因此,這顯然行不通。 您將必須從字符串中提取數字。 如果您不想使用正則表達式,可以嘗試如下操作:
s = u'adw第五代222'
n = int(''.join(c for c in s if c.isdigit()))
我想你可以這樣:
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?"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.