方法一:
s= "ab34aa243dd78eww89"
result =""
count =0
flag=False
for i in s:
if i>='a' and i<="z":
if flag=True:
result+=str(count)
flag=False
count=0
result+="*"
else:
flag=True
count+=int(i)
if count !=0:
result+=str(count)
print (result)
方法二:
# encoding = UTF-8
import re
s= "ab34aa243dd78eww89"
result =""
s=re.sub(r"[a-z]","*",s)
arr1=re.split("\\*+",s) #['', '34', '243', '78', '89']
for i in range(len(arr1)):
count=0
if arr1[i].isdigit():
for j in arr1[i]:
count+=int(j)
if count!=0:
arr1[i] = str(count)
arr2=re.split("\\d+",s)#['**', '**', '**', '***', '']
for i in range(len(arr1)):
result+=arr1[i]+arr2[i]
print(result)
方法3:
def get_data(data):
result=""
for i in data:
if i.isalpha():
result+="*"
else:
result+=i
return result
def get_sum(num):
result=""
temp=num.split("*")
for i in temp:
sum1=0
if len(i)==0:
result+="*"
elif len(i)==1:
result+=i
else:
for j in i:
sum1+=int(j)
result+=str(sum1)
return result
if __name__=="__main__":
data1="ab34aa243dd78eww89"
result1=get_data(data1)
print(get_sum(result1))