提取出只包含数字及字母,且以字母开头的最长的子字符串,打印出字符串及其长度,如果有多个一样长度的,都要打印出来。
来测试下自己的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.这是比较笨的一种