字符串处理过程:
(设计正则表达式,生成长度为500的字符串,其中包括AB组合、大写
字母、小写字母、数字及标点符号;
(2)将其按照标点符号进行分隔,并以空格进行连接;
(3)将字符串中的AB替换为“**”,返回替换后的结果,和替换的次数
import re
import random
a = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.!?'
# 生成字符串
while True:
b = ''.join([random.choice(a) for n in range(500)])
# 如果字符串符合条件则跳出循环,否则重新生成
# 如果对AB数量有要求,正则可做变形,例如AB出现三次以上 (?=(.*?AB){3,})
# 建议通过随机替换的方式替换出 AB 内容来
if re.match('^(?=.{500}$)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?AB)(?=.*?[,!?\.])',b)!=None:
break
# 生成的字符串
print(b)
# 按标点符号进行分隔
c = re.split('[],!?\.]', b)
# 并以空格进行连接
d = ' '.join(c)
print(d)
# 将 AB 替换为 **
e = re.sub('AB', '**', b)
f = re.findall('AB',b)
print(e)
print('AB出现了{}次,所以替换了{}次'.format(len(f),len(f)))