博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 正则表达式 re findall 返回能匹配的字符串
阅读量:6205 次
发布时间:2019-06-21

本文共 1425 字,大约阅读时间需要 4 分钟。

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')] 返回的是一个列表,列表里面是匹配的结果形成的元组形式。如果你需要用正则替换的话,可以看下

 

 

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

import urllib2 import re def 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('
(.*?)
',sitemap) #download each link for link in links: html=download(link)

 

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

你可能感兴趣的文章
php支付宝开发
查看>>
根据网页地址获取页面内容
查看>>
小小c#算法题 - 3 - 字符串语句反转
查看>>
同步手绘板——json
查看>>
CAD库中列举所有航路点
查看>>
(转)javascript匿名函数
查看>>
android的消息处理机制(图+源码分析)——Looper,Handler,Message
查看>>
知晓云助力小程序开发
查看>>
vue中的data用return返回
查看>>
TP引用样式表和js文件及验证码
查看>>
redis介绍以及安装
查看>>
项目需求分析答辩总结
查看>>
JNI通过线程c回调java层的函数
查看>>
JavaScript中的数组创建
查看>>
基于HTML5陀螺仪实现ofo首页眼睛移动效果
查看>>
poj 3348 Cows 求凸包以及凸包的面积
查看>>
ELK学习记录三 :elasticsearch、logstash及kibana的安装与配置(windows)
查看>>
Apache Ignite 学习笔记(二): Ignite Java Thin Client
查看>>
Persona & User Scenario for IP & Domain Name Lookup
查看>>
node.js 和 HTML5-Canvas 结合实现截图上传交互
查看>>