2016-04-09 60 views
3

所以我有一個字符串,例如"abdc54sgh",我需要從字符串中只複製54。事情是,數字可能會有所不同。 E.J。字符串可以是"hjsd23jsy""abvt12hbsy"或任何其他。所以我只需要複製第一個23和第二個12中的數字並將其分配給一個變量。Python - 找到一個數字,然後從字符串中複製它

+0

所以你需要跳過和非數字,只是採取後面的數字?或用空字符串替換非數字,所以只剩下數字? –

+0

正確地跳過這些字符並且只取其數字 –

+0

您知道如何檢查一個字符以查看它是否是數字嗎?你知道如何讓字符串中的每個字符? –

回答

5

使用正則表達式:

import re 
s = "abdc54sgh" 
pattern = re.compile("\d+") 
pattern.findall(s) 

或列表的理解和isdigit()

s = "abdc54sgh" 
int("".join([x for x in s if x.isdigit()])) 
+0

謝謝!像魅力一樣工作 –

+0

@JuanDavidOspina不客氣:) – jDo

1

嘗試以下操作:

def takeInt(st): 
    return int("".join([ch for ch in st if not ch.isalpha()])) 

>>> takeInt("hjsd23jsy") 
23 
>>> takeInt("abvt12hbsy") 
12 
>>> 
相關問題