Python 我可以删除字符串中的所有字母,只保留数字吗?

Python 我可以删除字符串中的所有字母,只保留数字吗?,python,string,Python,String,我使用的是Python2.6,我希望使用“gpmetisfile.txt.part.4”并返回数字4。(通常我会删掉并保存结束值,但它的长度和排列方式可能会在将来发生变化,我更愿意安全地从字符串本身按顺序获取数字) 2009年有一个类似于我的问题,但答案相互矛盾 提前感谢。以下内容按照您的问题答案执行:删除除数字以外的所有内容。这就是你需要的吗 In [1]: s = 'gpmetisfile.txt.part.4' In [2]: import re In [3]: re.sub('\D'

我使用的是Python2.6,我希望使用“gpmetisfile.txt.part.4”并返回数字4。(通常我会删掉并保存结束值,但它的长度和排列方式可能会在将来发生变化,我更愿意安全地从字符串本身按顺序获取数字)

2009年有一个类似于我的问题,但答案相互矛盾


提前感谢。

以下内容按照您的问题答案执行:删除除数字以外的所有内容。这就是你需要的吗

In [1]: s = 'gpmetisfile.txt.part.4'

In [2]: import re

In [3]: re.sub('\D', '', s)
Out[3]: '4'

我问这个问题的原因是,例如,
'gpmetisfile.txt.06_2012.part.4'
将变成
'0620124'
以下内容按照您的问题答案执行:删除除数字以外的所有内容。这就是你需要的吗

In [1]: s = 'gpmetisfile.txt.part.4'

In [2]: import re

In [3]: re.sub('\D', '', s)
Out[3]: '4'
>>> s = 'as!das42!fsd'
>>> ''.join(filter(str.isdigit, s))
'42'

我问这个问题的原因是,例如,
'gpmetisfile.txt.06_2012.part.4'
将变成
'0620124'

按fmark查看。@ryan,谢谢!对不起,我错过了那个。请看法马克。@ryan,谢谢!对不起,我错过了。这正是我需要的。字符串中只会出现一个数字,即现在我的文件是“gpmetis.part.1205.txt”。谢谢你的检查。这正是我需要的。字符串中只会出现一个数字,即现在我的文件是“gpmetis.part.1205.txt”。谢谢你的检查,太好了!这也行得通。使用一种方法比使用另一种方法有好处吗?@AllysonKim,这个解决方案比正则表达式快两倍:)正则表达式对于复杂的文本处理很好,但在这种情况下,它的杀伤力太大了,IMHOThank you!我希望我能选择两个答案。太好了!这也行得通。使用一种方法比使用另一种方法有好处吗?@AllysonKim,这个解决方案比正则表达式快两倍:)正则表达式对于复杂的文本处理很好,但在这种情况下,它的杀伤力太大了,IMHOThank you!我希望我能选择两个答案。
>>> s = 'as!das42!fsd'
>>> ''.join(filter(str.isdigit, s))
'42'