代码之家  ›  专栏  ›  技术社区  ›  user3765030

如何使用python3查找字符串中的最后一个非数字

  •  0
  • user3765030  · 技术社区  · 7 年前

    a_string = '00:00:02'
    for char in reversed(a_string):
        if not char.isdigit():
            break
    

    “char”将是最后一个非数字,但它感觉很粗糙。还有更优雅的方式吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Jongware    7 年前

    除了专用功能之外?选择任何一个:

    # regex
    print (re.findall(r'(\D)\d*$', a_string)[0])
    
    # list comprehension
    print ([x for x in a_string if not x.isdigit()][-1])
    
    # filter
    print ([x for x in filter(lambda x: not x.isdigit(), a_string)][-1])