python字符串中的最长数字子串

【问题描述】
本题目要求读入一个字符串,输出字符串的最长数字子串。
【输入形式】
输入一个字符串
【输出形式】
输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。


【输入样例】
sdffsd123werrer456fgdgdg1dfgdf12
【样例输出】
  456 

import re

s = input("输入一个字符串:")


ls = re.findall(r"\d+", s)
if ls:
    ss = ls[0]
    for i in ls:
        if len(i) >= len(ss):
            ss = i
    print(ss)
else:
    print("No digits")

用正则很简单

import re
input_str="sdffsd123werrer456fgdgdg1d"
num_list=re.findall("\d+",input_str)
max_len=0
max_len_num=""
for num in num_list:
      if len(num) >= max_len:
          max_len_num=num
          max_len=len(num)
if max_len_num=="":
    print("no digit")
else:
    print(max_len_num)