python 正则表达式 re findall 返回能匹配的字符串
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()
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 返回能匹配的字符串相关推荐
- Python 正则表达式:findall
本文以匹配×××IP为例,介绍re模块的findall的用法: 返回值->列表 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.findall(要匹配的字符串) ...
- python正则表达式 多个条件的匹配
python正则表达式 多个条件的匹配 result = re.search(('大功率.*CIR|标准型.*CIR|小型化.*CIR',i) 通过使用 这些关键字可以实现在正则匹配时对多个字段的匹配
- python 正则表达式解决包含且不包含某字符串的问题
python 正则表达式解决包含且不包含某字符串的问题 本测试使用python的re.compile与re.search作为方法测试包含error不包含abc的实例 python简单正则里只介绍到了不 ...
- python 正则表达式 re.findall()方法
from <Python 爬虫开发 从入门到实战>谢乾坤 pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志. findall的结果是一个列表,包 ...
- python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...
Python正则表达式 贪婪匹配/最小匹配 Re库默认采用贪婪匹配,即匹配最长的子字符串.在量词后面加一个"?",即可由贪婪匹配化为最小匹配. '*'用于将前面的模式匹配0次或多次 ...
- python正则表达式03--字符串中匹配数字
import re# \d+ 匹配字符串中的数字部分,返回列表 ss = 'adafasw12314egrdf5236qew' num = re.findall('\d+',ss) print(num ...
- python正则表达式过滤非中英文和数字的字符串
import resentence = "厉害了我的村!40亩地种了这些"植苗",当年结果,村民富裕了"# 方法一re.sub('[^\w\u4e00-\u9f ...
- python 正则表达式匹配的位置_python正则表达式匹配 模式匹配
Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...
- python正则表达式findall_正则表达式 re.findall 用法
正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组) 语法: findall(pattern, string, flags=0) impor ...
最新文章
- Apache Ignite——集合分布式缓存、计算、存储的分布式框架
- 使用HMTL5 API监控前端性能
- hdu 1317 XYZZY【Bellheman_ford 判断正环小应用】
- python 几种常用测试框架
- 厉害了!中关村软件园人工智能军团有料有看点
- IIS安装2个SSL_SSL的申请与https使用
- 【笔记】k-Nearest Neighbors(KNN/k近邻)原理
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_05-vuejs研究-vuejs基础-v-text指令...
- redhat7linux防火墙开放端口,Redhat7 firewall(防火墙)
- java 堆栈大小设置_如何增加Java堆栈大小?
- html使用表格输入数字,表格中输入数字,为什么出现“####”的原因
- 解决关于WPS插入公式后显示不全的问题
- java 压缩图片时候加水印
- Cadence 导出变种BOM详细操作方法
- 顺网网维大师(ICafe)平台安装说明
- JavaScript实现React实现网页转换成图片截屏下载
- Scratch少儿编程系列目录
- springdata数据源的配置
- 在pycharm用python画图:matplotlib
- 能ping通Linux但是ssh连不上问题解决方法