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

时间:2011-11-22 22:17:24

标签: python string

我有一个名为FILE-1.txt或FILE-340.txt的文件。我希望能够从文件名中获取数字。我发现我可以使用

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

获取一个包含该数字的列表,并使用数字[0]将数字本身作为字符串...但如果我知道它只是一个数字,那么它似乎很迂回,并且不需要制作一个列表来获取它。还有另一种方法吗?


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

5 个答案:

答案 0 :(得分:18)

使用search代替findall

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

可替换地:

number = filter(str.isdigit, filename)

答案 1 :(得分:2)

添加到F.J的评论中,如果你想要一个int,你可以使用:

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

答案 2 :(得分:1)

如果您希望自己的计划有效

使用它:

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

这仅适用于您展示的示例

答案 3 :(得分:1)

另一种有趣的方式:

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

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

答案 4 :(得分:0)

在回答您的新问题时,您可以将string投放到int

>>>int('123')
123