检查字符串在Python中以什么数字结尾

时间:2011-08-16 21:51:38

标签: python string numbers

例如“example123”将为123,“ex123ample”将为None,“123example”将为None。

3 个答案:

答案 0 :(得分:17)

您可以使用re模块中的正则表达式:

import re
def get_trailing_number(s):
    m = re.search(r'\d+$', s)
    return int(m.group()) if m else None

r'\d+$'字符串指定要匹配的表达式,由special symbols组成:

  • \d:一个数字(0-9)
  • +:上一项中的一项或多项(即\d
  • $:输入字符串的结尾

换句话说,它试图在字符串的末尾找到一个或多个数字。 search()函数返回一个Match对象,其中包含有关匹配的各种信息,如果它与请求的内容不匹配,则返回None。例如,group()方法返回与正则表达式匹配的整个子字符串(在本例中为一些数字)。

最后一行的三元if返回匹配的数字转换为数字或无,具体取决于Match对象是否为None。

答案 1 :(得分:14)

我会使用正则表达式,例如/(\d+)$/。这将匹配并捕获一个或多个数字,锚定在字符串的末尾。

了解regular expressions in Python

答案 2 :(得分:-2)

哎呀,纠正(抱歉,我错过了这一点)

你应该做这样的事情;)

导入RE模块

import re

然后写一个正则表达式,“搜索”表达式。

s = re.search("[a-zA-Z+](\d{3})$", "string123")

如果匹配则返回“123”,否则返回NoneType。

s.group(0)