python 正则

Posted on Posted in python

> python 正则举例

  1. secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'  
  2. c = re.findall('xx(.*?)xx',secret_code,re.S)  
  3. print c  

> 对比findall与search的区别

  1. # findall 搜索所有,search搜索到第一个,就不继续搜索了  
  2. s2 = 'asdfxxIxx123xxlovexxdfd, asdfxxIxx123xxlovexxdfd'  
  3. f = re.search('xx(.*?)xx123xx(.*?)xx',s2).group(2)  
  4. print f  
  5. f2 = re.findall('xx(.*?)xx123xx(.*?)xx',s2)  
  6. print f2[0]  

> sub的使用举例

  1. s = '123rrrrr123xxx123aaa123'  
  2. output = re.sub('123(.*?)123','123%d123'%789,s,re.S)  
  3. #sub实现翻页  
  4. old_url = 'http://aa.com/?pageNum=1'  
  5. total_page = 20  
  6. for i in range(2,total_page+1):  
  7.     new_link = re.sub('pageNum=\d+','pageNum=%d'%i,old_url,re.S)  
  8.     print new_link  
  9.   
  10. print output  

> 匹配数字

  1. a = 'asdfasf1234567fasd555fas'  
  2. b = re.findall('(\d+)',a)  
  3. print b  

> 抓取

  1. #读取源代码文件  
  2. f = open('source.txt','r')  
  3. html = f.read()  
  4. f.close()  
  5.   
  6. #匹配图片网址  
  7. pic_url = re.findall('img src="(.*?)" class="lessonimg"',html,re.S)  
  8. i = 0  
  9. for each in pic_url:  
  10.     print 'now downloading:' + each  
  11.     pic = requests.get(each)  
  12.     fp = open('pic\\' + str(i) + '.jpg','wb')  
  13.     fp.write(pic.content)  
  14.     fp.close()  
  15.     i += 1  
» 转载请注明来源:若我若鱼 » python 正则

Leave a Reply

Your email address will not be published. Required fields are marked *

8 − eight =