如何在Python中的字符串中找到一个数字?

How do I find one number in a string in Python?

我有一个文件叫做file-1.txt或file-340.txt。我想从文件名中获取号码。我发现我可以用

1
numbers = re.findall(r'\d+', '%s' %(filename))

若要获取包含数字的列表,并使用数字[0]将数字本身作为字符串获取…但是,如果我知道这只是一个数字,它似乎是迂回和不必要的清单来获得它。还有别的办法吗?

编辑:谢谢!我想现在我还有一个问题。我不是得到一个字符串,而是如何得到整数?


search代替findall

1
number = re.search(r'\d+', filename).group()

或者:

1
number = filter(str.isdigit, filename)


添加到F.J的注释中,如果需要int,可以使用:

1
numbers = int(re.search(r'\d+', filename).group())


另一种娱乐方式:

1
2
3
4
In [1]: fn = 'file-340.txt'

In [2]: ''.join(x for x in fn if x.isdigit())
Out[2]: '340'


如果你希望你的计划有效

使用此:

1
num = filename.split("-")[1][:-4]

这只对您展示的示例有效


在回答您的新问题时,您可以将string转换为int

1
2
>>>int('123')
123