怎么提取小写字母+数字?

python怎么提取小写字母+数字(小写字母+数字共32个字符,先后顺序不限)

a57a50b2109fe5e840a928a2bb3108ac

3bef626a441387e5e17adc2e8a1275bf

import re

def fu(url):
    r = re.findall(r'\w{32}',url)
    return "没找到" if len(r)==0 else r[0]

print(fu('https://file.ertuba.com/2021/0125/a57a50b2109fe5e840a928a2bb3108ac.jpg'))
print(fu('https://file.ertuba.com/2021/0125/3bef626a441387e5e17adc2e8a1275bf.jpg'))

 

#\d 匹配一个数字字符。等价于 [0-9]
#\D 匹配一个非数字字符。等价于 [^0-9]

#提取汉字
import re
string = "hello,world!!%[545]你好234asd完全额。。。"
str = re.sub("[A-Za-z0-9\!\%\[\]\,\。]", "", string)
print(str)

#从字符串中提取数字
totalCount = '100abcdef'
totalCount = re.sub("\D", "", totalCount) 
print(totalCount)

#提取字母字符串
import re
string = "hello,world!!%[545]爱迪生234世界。。。"
result = ''.join(re.findall(r'[A-Za-z]', string)) 
print(result)

 

 用string库很容易解决。

strings = ['a57a50b2109fe5e840a928a2bb3108ac','3bef626a441387e5e17adc2e8a1275bf']

from string import ascii_lowercase,digits

for s in strings:

    alphas = ''.join([x for x in s if x in ascii_lowercase])

    digits = ''.join([x for x in s if x in digits])

    print(f"alphas: {alphas},digits: {digits}")

如果要从html代码中提取

import re

def fu(url):
    r = re.findall(r'\w{32}',url)
    return r

html = '''
<a href="https://file.ertuba.com/2021/0125/a57a50b2109fe5e840a928a2bb3108ac.jpg" title="" target="_blank">111111</a>
<a href="https://file.ertuba.com/2021/0125/3bef626a441387e5e17adc2e8a1275bf.jpg" title="" target="_blank">222222</a>
'''
print(fu(html))

 

Zifuchuan = "lxa7YzU"
Digit = "" ; Lower = "" ; Upper = ""
for i in Zifuchuan :
    if i.isdigit() :
        Digit += i
    elif i.islower() :
        Lower += i
    elif i.isupper() :
        Upper += i
    else :
        pass
print """
digit:{}
lower:{}
upper:{}
""".format(Digit,Lower,Upper)

 

string="3bef626a441387e5e17adc2e8a1275bf";

outstring=""

for i in string:

if i.islower():

outstring+=i

else:

pass

for i in string:

if i.isdigit():

outstring+=i

else:

pass

print """
outstring:{}
""".format(outstring)