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

时间:2015-03-12 09:25:39

标签: python regex string python-3.x

我有一个像"Titile Something/17"这样的字符串。我需要删除"/NNN"部分,该部分可以是3, 2, 1位数或可能不存在。

你是如何在python中做到这一点的?感谢。

4 个答案:

答案 0 :(得分:3)

此处不需要RegEx,只需使用内置的str.rindex功能和slicing,就像这样

>>> data = "Titile Something/17"
>>> data[:data.rindex("/")]
'Titile Something'
>>> data[data.rindex("/") + 1:]
'17'

或者你可以使用str.rpartition,就像这样

>>> data.rpartition('/')[0]
'Titile Something'
>>> data.rpartition('/')[2]
'17'
>>> 

注意:这将在最后/之后获得任何字符串。请谨慎使用。

如果你想确保拆分字符串实际上是数字,你可以使用str.isdigit函数,就像这样

>>> data[data.rindex("/") + 1:].isdigit()
True
>>> data.rpartition('/')[2].isdigit()
True

答案 1 :(得分:2)

data = "Titile Something/17"

print data.split("/")[0]
'Titile Something' 
print data.split("/")[-1] #last part string after separator /
'17'

print data.split("/")[1] # next part after separator in this case this is the same
'17'

当你想将它添加到列表时使用strip()删除换行符“\ n”

print data.split("/")[-1].strip()
'17'

答案 2 :(得分:1)

\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'

答案 3 :(得分:1)

  

我需要剪掉“/ NNN”

x = "Titile Something/17"
print re.sub(r"/.*$","",x)   #cuts the part after /
print re.sub(r"^.*?/","",x)  #cuts the part before /

使用re.sub你可以得到你想要的东西。