2013-04-15 227 views
1

我想通过一条线来解析,并用python从中获取一组特定的数字。从字符串中获取数字

字符串看起来是这样的: “可用72732672个字节(使用56004608个字节)” 数字可以是任何数值,这让我无法预先确定这一点。 具体目标是在这种情况下是“72732672”。

你们有没有解决方案?

+0

这没有多大意义。你只需要检查目标是否在字符串中? – jamylak

回答

4

所以你想从字符串中的整数?一种方法是使用regular expressions。但是这可以不使用正则表达式来完成。

>>> line = "72732672 bytes available (56004608 bytes used)" 
>>> [int(word) for word in line.split() if word.isdigit()] 
[72732672] 

,如果你想使用正则表达式 -

>>> import re 
>>> 
>>> re.findall(r'\d+', line) 
['72732672', '56004608'] 
+0

谢谢。这个帮了我。 – Arash

2

使用re模块:

>>> digits = re.compile(r'[0-9]+') 
>>> digits.findall("72732672 bytes available (56004608 bytes used)") 
['72732672', '56004608'] 

可以转换为实际数字与诠释:

>>> l = digits.findall("72732672 bytes available (56004608 bytes used)") 
>>> l = [int(x) for x in l] 
>>> l 
[72732672, 56004608] 
0
>>> import re 
>>> text = "72732672 bytes available (56004608 bytes used)" 
>>> re.findall(r'\d+', text) 
['72732672', '56004608']