簡體   English   中英

如何在python字符串中獲取數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM