已采纳回答 / qq_慕桂英3283314
因为re.search函数里‘str1’表示的是字符串str1,而不是你上面定义的字符串变量str1,改为re.search(r'\d+',str1)就可以了。
2020-02-02
已采纳回答 / redrose2100
\1表示使用编号为1的分组,在前面有个括号([\w]+>) 这个括号内的就表示是编号为1的分组,如果这个正则表达式中有多个括号,就是说有多个分组,然后想复用第n个分组,就加一个\n,就OK了,不知道有没有说清楚
2018-07-15
已采纳回答 / 慕尼黑7825836
正则表达式在进行数量匹配时有{},+,*,?其中.*代表匹配除换行符以外的任意字符任意次,可以是0次。.代表除换行符以外的任意字符,*代表任意次,相当于{0,} 后边多一个?表示懒惰模式。必须跟在*或者+后边用.*? 是懒惰匹配,一旦匹配到第一个就不往下走了。.*+是无限匹配直到最后一个。
2018-04-19
已采纳回答 / 芳芳菲菲
可以在req = urllib2.urlopen('http:'+url)上面 print 'http:'+url, 就会发现问题所在。listurl = re.findall(r'//.+\.jpg*',buf)这个地方的正则错误,应该使用非贪婪匹配模式,改为listurl = re.findall(r'//.+?\.jpg',buf),即可。
2018-03-16
已采纳回答 / 慕尼黑8959533
listurl = re.sub(r'src="','http:',str(listurl))的这一步结果是一个str,还需要再将地址匹配出来,多写一步:listurl = re.findall(r'http:.+?\.jpg'),这样得到的结果是list
2018-02-03
已采纳回答 / qq_爱吃羊的鲸鱼_0
\1就是代表了前面“([\w]+>)”这些内容,你将\1替换掉就成了ma=re.match(r'<([\w]+>)[\w]+</([\w]+>)','<book>python</book>') 其中括号已经没有意义,去掉后就变成ma=re.match(r'<[\w]+>[\w]+</[\w]+>','<book>python</book>') 这样看就应该没问题了吧。后面加1匹配不出来的原因也是应为&...
2017-12-25
已采纳回答 / Poison丶刺心
[1-9]?[0-9]:这个里面是两个部分[1-9]?和[0-9]第一部分:是匹配1到9之间的数字出现0次或1次第二部分:是匹配0到9之间的数字至少出现一次所以匹配‘09’这个字符串的时候,第一部分中不包含‘0’这个字符串,暂时的匹配结果为‘’(即空字符串),所以执行第二部分,第二部分包含‘0’,暂时的匹配结果为‘0’,匹配结束,输出结果‘0’
2017-09-10
已采纳回答 / 赖lai
我猜,打开最新的链接是这样的http://www.imooc.com/course/list?sort=last,如果链接没有参数sort=last的话,慕课网就默认返回的是最热的显示内容吧,毕竟通过最热,可以让用户更好的找到当前热门的自己喜欢的课程吧
2017-09-04
已采纳回答 / qq_AI小艾_0
应该是网页的代码有变化了。我的参考代码是这样的!:import reimport requestsimport osdef geturl(): if not os.path.exists("D:\\IMMOC"): os.makedirs("D:\\IMMOC") count=1 res=requests.get('http://www.imooc.com/course/list') re_search=re.findall(r'src=.*\.jpg',res.te...
2017-08-30
已采纳回答 / 慕粉3606827
我自己试了一下,发现会读取出这种如图1的结果,我个人猜测是因为在正则表达式中使用了+这个贪婪模式的字符,所以会尽量匹配多的字符,所以看图中就知道,它把两个地址的字符串都匹配进...
2017-08-01