Python 如何从字符串末尾提取数字

Python 如何从字符串末尾提取数字,python,regex,string,python-3.x,Python,Regex,String,Python 3.x,我有一个字符串,像“titilesomething/17”。我需要剪下“/NNN”可以是3、2、1数字或可能不存在的部分 如何在python中实现这一点?谢谢。\d{0,3}从零到三位匹配$断言我们在一行的末尾 re.search(r'/\d{0,3}$', st).group() 例如: >>> re.search(r'/\d{0,3}$', 'Titile Something/17').group() '/17' >>> re.search(r'/\d{

我有一个字符串,像
“titilesomething/17”
。我需要剪下
“/NNN”
可以是
3、2、1
数字或可能不存在的部分


如何在python中实现这一点?谢谢。

\d{0,3}
从零到三位匹配
$
断言我们在一行的末尾

re.search(r'/\d{0,3}$', st).group()
例如:

>>> re.search(r'/\d{0,3}$', 'Titile Something/17').group()
'/17'
>>> re.search(r'/\d{0,3}$', 'Titile Something/1').group()
'/1'
我需要删掉“/NNN”


使用
re.sub
您可以随心所欲。

这里不需要正则表达式,只需使用内置函数,如下所示

>>> data = "Titile Something/17"
>>> data[:data.rindex("/")]
'Titile Something'
>>> data[data.rindex("/") + 1:]
'17'
>>> data.rpartition('/')[0]
'Titile Something'
>>> data.rpartition('/')[2]
'17'
>>> 
>>> data[data.rindex("/") + 1:].isdigit()
True
>>> data.rpartition('/')[2].isdigit()
True
或者你可以用,像这样

>>> data = "Titile Something/17"
>>> data[:data.rindex("/")]
'Titile Something'
>>> data[data.rindex("/") + 1:]
'17'
>>> data.rpartition('/')[0]
'Titile Something'
>>> data.rpartition('/')[2]
'17'
>>> 
>>> data[data.rindex("/") + 1:].isdigit()
True
>>> data.rpartition('/')[2].isdigit()
True
注意:这将得到最后一个
/
之后的任何字符串。小心使用

如果您想确保分割的字符串实际上充满了数字,可以使用函数,如下所示

>>> data = "Titile Something/17"
>>> data[:data.rindex("/")]
'Titile Something'
>>> data[data.rindex("/") + 1:]
'17'
>>> data.rpartition('/')[0]
'Titile Something'
>>> data.rpartition('/')[2]
'17'
>>> 
>>> data[data.rindex("/") + 1:].isdigit()
True
>>> data.rpartition('/')[2].isdigit()
True

如果要将其添加到列表中,请使用strip()删除换行符“\n”


~

请提供一个您已经尝试过的例子。交易是您向我们展示了您的尝试和代码,以及如何解决问题,因此不是编写代码service@EdChum从来没有想过让别人为我写代码,但是代码示例-反馈非常有用。很好,但可读性不太好:)fourtheye的示例更好,你认为如何?@DmitrijA fourtheye的示例也适用于
“Titile Something/foo”
输入。但我想你想要的是最后一个零位数或最多三位数的部分。是的,你在这里是正确的。但如果没有数字,也就没有斜线。为此,在调用
.group()
之前,我必须检查结果是否为
None
。我想您可以很容易地检查
re.search
是否返回匹配的对象。感谢您的输入和欢迎。但是
split()。