python 正则表达式 re findall 方法能够以列表的形式返回能匹配的子串。

re.findall(pattern, string[, flags]):

搜索string,以列表形式返回全部能匹配的子串。先看个简单的代码:

import re
 
p = re.compile(r'\d+')
print p.findall('one1two2three3four4')
 
### output ###
# ['1', '2', '3', '4']

稍微复杂点比如:
info = '<a href="http://www.baidu.com">baidu</a>' 我们的需求是通过正则表达式提取网址和锚文本,那可以用到
findall()

import re
relink = '<a href="(.*)">(.*)</a>'
info = '<a href="http://www.baidu.com">baidu</a>'
cinfo = re.findall(relink,info)
print cinfo

输出的结果:[('http://www.baidu.com', 'baidu')] 返回的是一个列表,列表里面是匹配的结果形成的元组形式。如果你需要用正则替换的话,可以看下python re sub

以下是一个网站地图爬虫 ,其中用到了re.findall 语法

import urllib2import redef download(url,user_agent='wswp', num_retries=2):    print 'downloading:',url    headers={'User-agent':user_agent}    request=urllib2.Request(url,headers=headers)    try:         html=urllib2.urlopen(url).read()    except urllib2.URLError as e:        print 'download error:', e.reason        html=None        if num_retries>0:            if hasattr(e, 'code') and  500<=e.code<600:                #recursively retry 5XX http errors                return download(url, user_agent,num_retries-1)    return html

def crawl_sitemap(url):    #download the sitemap file    sitemap=download(url)    #extract the sitemap links    links = re.findall('<loc>(.*?)</loc>',sitemap)    #download each link    for link in links:        html=download(link)

转载于:https://www.cnblogs.com/mrruning/p/7637463.html

python 正则表达式 re findall 返回能匹配的字符串相关推荐

  1. Python 正则表达式:findall

    本文以匹配×××IP为例,介绍re模块的findall的用法: 返回值->列表 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.findall(要匹配的字符串) ...

  2. python正则表达式 多个条件的匹配

    python正则表达式 多个条件的匹配 result = re.search(('大功率.*CIR|标准型.*CIR|小型化.*CIR',i) 通过使用 这些关键字可以实现在正则匹配时对多个字段的匹配

  3. python 正则表达式解决包含且不包含某字符串的问题

    python 正则表达式解决包含且不包含某字符串的问题 本测试使用python的re.compile与re.search作为方法测试包含error不包含abc的实例 python简单正则里只介绍到了不 ...

  4. python 正则表达式 re.findall()方法

    from <Python 爬虫开发 从入门到实战>谢乾坤 pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志. findall的结果是一个列表,包 ...

  5. python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...

    Python正则表达式 贪婪匹配/最小匹配 Re库默认采用贪婪匹配,即匹配最长的子字符串.在量词后面加一个"?",即可由贪婪匹配化为最小匹配. '*'用于将前面的模式匹配0次或多次 ...

  6. python正则表达式03--字符串中匹配数字

    import re# \d+ 匹配字符串中的数字部分,返回列表 ss = 'adafasw12314egrdf5236qew' num = re.findall('\d+',ss) print(num ...

  7. python正则表达式过滤非中英文和数字的字符串

    import resentence = "厉害了我的村!40亩地种了这些"植苗",当年结果,村民富裕了"# 方法一re.sub('[^\w\u4e00-\u9f ...

  8. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

  9. python正则表达式findall_正则表达式 re.findall 用法

    正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组) 语法: findall(pattern, string, flags=0) impor ...

最新文章

  1. Apache Ignite——集合分布式缓存、计算、存储的分布式框架
  2. 使用HMTL5 API监控前端性能
  3. hdu 1317 XYZZY【Bellheman_ford 判断正环小应用】
  4. python 几种常用测试框架
  5. 厉害了!中关村软件园人工智能军团有料有看点
  6. IIS安装2个SSL_SSL的申请与https使用
  7. 【笔记】k-Nearest Neighbors(KNN/k近邻)原理
  8. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_05-vuejs研究-vuejs基础-v-text指令...
  9. redhat7linux防火墙开放端口,Redhat7 firewall(防火墙)
  10. java 堆栈大小设置_如何增加Java堆栈大小?
  11. html使用表格输入数字,表格中输入数字,为什么出现“####”的原因
  12. 解决关于WPS插入公式后显示不全的问题
  13. java 压缩图片时候加水印
  14. Cadence 导出变种BOM详细操作方法
  15. 顺网网维大师(ICafe)平台安装说明
  16. JavaScript实现React实现网页转换成图片截屏下载
  17. Scratch少儿编程系列目录
  18. springdata数据源的配置
  19. 在pycharm用python画图:matplotlib
  20. 能ping通Linux但是ssh连不上问题解决方法

热门文章

  1. Oracle修改字段类型方法
  2. 004 排序(冒泡快排)
  3. 辛星浅谈PHP的混乱的编码风格
  4. Google Code Jam 2015 Round 1A Mushroom Monster 水
  5. 单独运行shell脚本与crontab运行shell脚本的区别
  6. GRUB 启动 WIN PE 镜像(ISO)
  7. 这就是80后的我们!
  8. 微任务与宏任务与eventloop
  9. Vue项目中一些常见的文件名及作用
  10. mysql流式查询mybatis_流式查询:MyBatis千万级数据查询解决方案,避免OOM