Python爬虫之正則表達式
1.经常使用符号
. :匹配随意字符,换行符 \n 除外
* :匹配前一个字符0次或无限次
?
:匹配前一个字符0次或1次
.* :贪心算法。尽可能的匹配多的字符
.*? :非贪心算法
() :括号内的数据作为结果返回
2.经常用法
findall:匹配全部符合规律的内容。返回包括结果的列表
Search:匹配并提取第一个符合规律的内容,返回一个正則表達式对象
Sub:替换符合规律的内容,返回替换后的值
3.使用演示样例
3.1 . 的使用举例,匹配随意字符,换行符 \n 除外
import re #导入re库文件
a = 'xy123'
b = re.findall('x..',a)
print b
打印的结果为:['xy1'] 。每一个 . 表示一个占位符
3.2 * 的使用举例。匹配前一个字符0次或无限次
a = 'xyxy123'
b = re.findall('x*',a)
print b
打印的结果为:['x', '', 'x', '', '', '', '', '']
3.3 ? 的使用举例,匹配前一个字符0次或1次
a = 'xy123'
b = re.findall('x? ',a)
print b
打印的结果为:['x', '', '', '', '', '']
3.4 .* 的使用举例
secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'
b = re.findall('xx.*xx',secret_code)
print b
打印的结果为:['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']
3.5 .*?的使用举例
secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'
c = re.findall('xx.*? xx',secret_code)
print c
打印的结果为:['xxIxx', 'xxlovexx', 'xxyouxx']
3.6 ()的使用举例
secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'
d = re.findall('xx(.*?)xx',secret_code)
print d
打印的结果为:['I', 'love', 'you'] 。括号内的数据作为返回的结果
3.7 re.S的使用举例
s = '''sdfxxhello
xxfsdfxxworldxxasdf'''
d = re.findall('xx(.*?)xx',s,re.S)
print d
打印的结果为:['hello\n', 'world'] ,re.S的作用是使 . 在匹配时包含 \n
3.8 findall的使用举例
s2 = 'asdfxxIxx123xxlovexxdfd'
f2 = re.findall('xx(.*?)xx123xx(.*?)xx',s2)
print f2[0][1]
打印的结果为:love
)xx123xx(.*?
)xx'这种子串。则f2包括多个元组
3.9 search的使用举例
s2 = 'asdfxxIxx123xxlovexxdfd'
f = re.search('xx(.*?)xx123xx(.*? )xx',s2).group(2)
print f
打印的结果为:love
.group(2) 表示返回第二个括号匹配到的内容,假设是 .group(1), 则打印的就是:I
3.10 sub的使用举例
s = '123rrrrr123'
output = re.sub('123(.*?)123','123%d123'%789,s)
print output
打印的结果为:123789123
)123','123789123',s),输出结果也为:123789123
3.11 \d 的使用举例。用于匹配数字
a = 'asdfasf1234567fasd555fas'
b = re.findall('(\d+)',a)
print b
打印的结果为:['1234567', '555'] , \d+ 能够匹配数字字符串
Python爬虫之正則表達式的更多相关文章
- python使用正則表達式
python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 . ^ $ * + ? { } [ ] \ | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...
- python 学习笔记 10 -- 正則表達式
零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...
- Python正則表達式:怎样使用正則表達式
正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...
- python进阶十_正則表達式(一)
近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...
- python re 正則表達式
夜深了.敲击键盘.用CSDN整理下python re 正則表達式是含有文本和特别字符的字符串,这些文本和特别字符描写叙述的模式能够识别各种字符串. 一下我们从实例结合理论来学习理解吧... 经常使 ...
- 正則表達式re中的贪心算法和非贪心算法 在python中的应用
之前写了一篇有关正則表達式的文章.主要是介绍了正則表達式中通配符 转义字符 字符集 选择符和子模式 可选项和反复子模式 字符串的開始和结尾 ,有兴趣的能够查看博客内容. 此文章主要内容将要介绍re中的 ...
- Python学习笔记8:标准库之正則表達式
Python拥有强大的标准库.从如今起,開始学习标准库中提供的一些经常使用功能. 首先看正則表達式(regular expression),它的主要功能是从字符串(string)中通过特定的模式(pa ...
- Python——正則表達式(2)
本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...
- Python正則表達式小结(1)
学习一段python正則表達式了, 对match.search.findall.finditer等函数作一小结 以下以一段网页为例,用python正則表達式作一个范例: strHtml = '''& ...
随机推荐
- SpringMVC文件上传和下载的实现
SpringMVC通过MultipartResolver(多部件解析器)对象实现对文件上传的支持. MultipartResolver是一个接口对象,需要通过它的实现类CommonsMultipart ...
- Android常用的一些make命令【转】
本文转载自:http://blog.csdn.net/liuxd3000/article/details/39181377 1.make -jX X表示数字,这个命令将编译Android系统并生成镜 ...
- 最全三大框架整合(使用映射)——applicationContext.xml里面的配置
applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans x ...
- kali 下使用 arpspoof 实现 ARP 欺骗
ARP 欺骗: 一种中间人攻击,攻击者通过毒化受害者的 ARP 缓存,将网关的 MAC 替换成攻击者的 MAC ,于是攻击者的主机实际上就充当了受害主机的网关, 之后攻击者就可以截获受害者发出和接到的 ...
- BZOJ1222: [HNOI2001]产品加工(诡异背包dp)
Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 907 Solved: 587[Submit][Status][Discuss] Descriptio ...
- css 画三角形
<div class='triangle-rihgt'></div> <div class='triangle-top'></div> <div ...
- Eric6中编译窗体时,弹出提示:无法启动pyuic5的解决方案
用 Eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足python的极速GUI编程,不需要在界面上花很多时间. 这是一对GUI开发完美的组合! Eric6中设计窗体时,弹出提示:‘无 ...
- UWP App Services in Windows 10
1.AppServices in Universal Windows Platform(UWP) UWP 应用服务可以提供给另一个UWP应用.在Win10系统中,一个应用服务当作应用的一个方法和机制来 ...
- Windows各种计时器
(一):OnTimer类 1.打开对应对话框的类向导ClassWizard. 2.在消息映射MessageMaps中添加消息Message:WM_TIMER. 3.程序代码中将自动添加函数OnTime ...
- Linux 命令查询系统负载信息
linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长 时间,信息显示依次为:现在时间.系统已经运 ...