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

Ste*_*eve 14 python string numbers

例如"example123"将是123,"ex123ample"将是None,并且"123example"将是None.

efo*_*nis 17

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

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

r'\d+$'字符串指定的表达式进行匹配,并且由这些的特殊符号:

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

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

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

 


Mat*_*all 14

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

阅读Python中的正则表达式.

  • @Steve,你最好养成使用原始字符串(`r'...'`)作为正则表达式的习惯,否则你很快就会陷入一个痛苦的世界...... (5认同)
  • re.search('(\ d +)$',"text234").group(0)工作. (4认同)
  • +使用`int`将提取的字符串转换为整数. (2认同)