例如"example123"将为123,"ex123ample"将为None, "123example"将为None。
您可以使用re
模块中的正则表达式:
import re
def get_trailing_number(s):
m = re.search(r'd+$', s)
return int(m.group()) if m else None
r'd+$'
字符串指定要匹配的表达式,由以下特殊符号组成:
-
d
:数字(0-9) -
+
:前一项(即d
)中的一项或多项
$
:输入字符串的结束换句话说,它试图在字符串的末尾找到一个或多个数字。search()
函数返回一个Match
对象,其中包含有关匹配的各种信息,如果不能匹配请求的内容,则返回None
。例如,group()
方法返回匹配正则表达式的整个子字符串(在本例中是一些数字)。
最后一行的三进制if
返回匹配的数字转换为数字或None,具体取决于Match对象是否为None。
我会使用正则表达式,比如/(d+)$/
。这将匹配并捕获一个或多个固定在字符串末尾的数字。
阅读Python中的正则表达式
哎呀,更正一下(对不起,我没抓住重点)
你应该这样做;)
导入RE模块
import re
然后写一个正则表达式,"搜索"一个表达式。
s = re.search("[a-zA-Z+](d{3})$", "string123")
如果匹配则返回"123",如果不匹配则返回NoneType。
s.group(0)