作业帮 > 综合 > 作业

python正则匹配请帮忙

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/08 18:11:54
python正则匹配请帮忙
‘成功的[字母:5][字母:7]事情’
成功的jfsas545616事情
我有一段文字,里面有[字母:5] [数字:6] 这样的内容,我想把[字母:5]替换成随机五个字母 数字也一样,六个数字.
import re
import random
data = "成功的jfsas545616事情"
ranint = str(random.randint(99999,999999)+1)
ranstr = string.join(random.sample("qwertyuiopasdfghjklzxcvbnm",5)).replace(" ","")
newdata = re.sub("\d{6}",ranint ,data)
newdata = re.sub("[a-z|A-Z]{5}",ranstr ,newdata)
再问: 这是好,但是我要有功能不是这个。。成功的[字母:5][数字:7]事情 [字母:5]=五个随机字母 [字母:10]=十个随机字母 我要取多少个字母多少个数字做来一个变量,程序里面自动替换掉。。多谢了!
再答: data = "成功的jfsas545616事情" newdata = re.sub("\d",lambda m:str(random.randint(0,9)) ,data) newdata = re.sub("[a-z|A-Z]",lambda m:random.choice("qwertyuiopasdfghjklzxcvbnm"),newdata)
再问: 大大,data = "成功的[字母:5][数字:7]事情" 这样可以弄吗?麻烦了。。
再答: 可以的,随便几个字母和数字 data = "成功的jfsas5405616事情" newdata = re.sub("\d",lambda m:str(random.randint(0,9)) ,data) newdata = re.sub("[a-z|A-Z]",lambda m:random.choice("qwertyuiopasdfghjklzxcvbnm"),newdata)
再问: 嗯。我知道你给我的这个怎么用了。。。 里面有几个字母或者几个数字都替换掉! 我是说data的内容是"成功的[字母:5][数字:7]事情"这个!
再答: data = "成功的[字母:5][数字:7]" reint = re.search("\[数字:([^\]]+)",data).group()+"]" intCnt = int(re.search("\[数字:([^\]]+)",data).group(1)) ranint = str(random.randint(10**(strCnt-1)-1,10**strCnt-1)+1) reStr = re.search("\[字母:([^\]]+)",data).group()+"]" strCnt = int(re.search("\[字母:([^\]]+)",data).group(1)) ranstr = string.join(random.sample("qwertyuiopasdfghjklzxcvbnm",strCnt)).replace(" ","") newdata = data.replace(intCnt ,ranint).replace(reStr, ranstr)
再问: NameError: name 'strCnt' is not defined 搞不定。谢谢了!!是不是我版本的事了。。
再答: strCnt = int(re.search("\[字母:([^\]]+)",data).group(1)) 这个怎么会没有定义呢?你有写这句了吗
再问: 直接复制你的,不知道什么情况。。
再答: ranint = str(random.randint(10**(strCnt-1)-1,10**strCnt-1)+1) 这句写错了,应该是 ranint = str(random.randint(10**(intCnt -1)-1,10**intCnt -1)+1)
再问: TypeError: expected a character buffer object 还是搞不定,看来我学不来了。多谢了!!