提取出只包含数字及字母,且以字母开头的最长的子字符串,打印出字符串及其长度,如果有多个一样长度的,都要打印出来。

来测试下自己的python水平,笔试题,
testStr = '#abc123$%&()*+,-./:;<=abc124>?@[4f]^{1aaa12|}'
提取出只包含数字及字母,且以字母开头的最长的子字符串,打印出字符串及其长度,如果有多个一样长度的,都要打印出来。比如上面字符串提取结果是:
abc123 6
abc124 6


以上是一道python代码题

1.这是一个大佬写的 :简单明了
import  re
lst = []
strnew = 'abc123$%&()*+,-./:;<=abc124>?@[4f]^{1aaa12|}'
find = re.findall('[a-zA-Z][a-zA-Z0-9]+',strnew)
for i in range(len(find)):
lst.append(len(find[i]))
maxlst = max(lst)

for j in range(len(find)):
if len(find[j]) == maxlst:
print(find[j],maxlst)


2.这也是一种

3.这是比较笨的一种





猜你喜欢

转载自www.cnblogs.com/baozi888/p/11124540.html
今日推荐