python字符串相关问题

问题遇到的现象和发生背景

写一个函数find_long_num,输入一个字母数字混合字符串,输出其中最长的数字子串

例如:

find_long_num('abb12345dd123')返回'12345'

find_long_num('abb12345dd12333')返回'12345',也就是如果两个数字子串等长,则返回第一个

find_long_num('abb')返回''。

问题相关代码,请勿粘贴截图

import re
def find_long_num(str1):
str2 = re.findall(r'\d+',str1)
str2.sort(key = lambda str2 : len(str2),reverse = True)
return str2[0]

运行结果及报错内容

没有报错,就是没有考虑到abb的情况,是再写一个函数判断字符串是不是包含数字还是直接在函数内部判断,我现在就想知道怎么加上字符串中不包含数字的情况


import re
def find_long_num(str1):
    str2 = re.findall(r'[0-9]+',str1)
    str2.sort(key = lambda str2 : len(str2),reverse = True)
    return str2[0] if len(str2) != 0 else ""
print(find_long_num(input()))