2012-09-05 67 views

回答

9

如果你想验证它们实际上是数字,你可以做

x.rsplit('-', 1)[1].isdigit() 

“数字”是可以解释不同的方式更普遍的标准。例如“12.87”在某种意义上是数字,但不是所有的字符都是数字。

您可以通过int(x.rsplit('-', 1)[1])来查看该字符串是否可以被解释为整数,或者float(x.rsplit('-', 1)[1])以查看它是否可以解释为浮点数。 (这将引发ValueError如果字符串是不是在适当的意义上的数字,这样你就可以捕获该异常,做任何你需要做的,如果它不是数字。)

5
s = 'this-is-a-string-125'.split('-')[-1].isdigit() 

我们通过划线分割字符串('-'),它给出了一个子串列表(见split())。然后,我们采取的最后一个([-1]),我们验证该字符串只包含数字(isdigit()):

>>> 'this-is-a-string-125'.split('-') 
['this', 'is', 'a', 'string', '125'] 
>>> 'this-is-a-string-125'.split('-')[-1] 
'125' 
>>> 'this-is-a-string-125'.split('-')[-1].isdigit() 
True 
1

如何:

str.split('-')[-1].isdigit() 
1

似乎是一个简单的正则表达式都可以做的剥离和检查:

>>> import re 
>>> s = 'this-is-a-string-125' 
>>> m = re.search(r'-(\d+)$', s) 
>>> m.group(1) 
'125' 
>>> s[:m.start()] # gives you what was stripped away. 
'this-is-a-string' 

Match对象mNone如果字符串缺少一个破折号后面跟着一个或MOR e数字在最后。

相关问题