如果我有一个字符串:在Python中的字符串中删除最后一个破折号后的所有字符,并测试数字?
string = 'this-is-a-string-125'
我怎么能抓住最后的字符集的破折号后,检查他们是否是数字?
如果我有一个字符串:在Python中的字符串中删除最后一个破折号后的所有字符,并测试数字?
string = 'this-is-a-string-125'
我怎么能抓住最后的字符集的破折号后,检查他们是否是数字?
如果你想验证它们实际上是数字,你可以做
x.rsplit('-', 1)[1].isdigit()
“数字”是可以解释不同的方式更普遍的标准。例如“12.87”在某种意义上是数字,但不是所有的字符都是数字。
您可以通过int(x.rsplit('-', 1)[1])
来查看该字符串是否可以被解释为整数,或者float(x.rsplit('-', 1)[1])
以查看它是否可以解释为浮点数。 (这将引发ValueError如果字符串是不是在适当的意义上的数字,这样你就可以捕获该异常,做任何你需要做的,如果它不是数字。)
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
如何:
str.split('-')[-1].isdigit()
似乎是一个简单的正则表达式都可以做的剥离和检查:
>>> 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对象m
将None
如果字符串缺少一个破折号后面跟着一个或MOR e数字在最后。
没有人知道partition或rpartition:
text.rpartition("-")[-1].isdigit()
我没有然而downvote,如果“抢最后一组数字”,那么他们必须是数字,是吗?否则,他们不会是数字;) – Hamish
@Hamish - 你是对的,谢谢。文本更新澄清。 – ensnare