爬虫常用正则

爬虫经常用到的一些正则,这可以帮助我们更好地处理字符。

正则符

单字符

. : 除换行以外所有字符
[] :[aoe] [a-w] 匹配集合中任意一个字符
\d :数字 [0-9]
\D : 非数字
\w :数字、字母、下划线、中文
\W : 非\w
\s :所有的空白字符包,括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
\S : 非空白

数量修饰

* : 任意多次  >=0
+ : 至少1次 >=1
? : 可有可无 0次或者1次
{m} :固定m次 hello{3,}
{m,} :至少m次
{m,n} :m-n次

边界

$ : 以某某结尾
^ : 以某某开头

分组

(ab)

贪婪模式

.*

非贪婪惰性模式

.*?
# 1 提取出python
'''
key = 'javapythonc++php' re.findall('python',key)
re.findall('python',key)[0]
'''
# 2 提取出 hello word
'''
key = '<html><h1>hello word</h1></html>'
print(re.findall('<h1>.*</h1>', key))
print(re.findall('<h1>(.*)</h1>', key))
print(re.findall('<h1>(.*)</h1>', key)[0])
'''
# 3 提取170
'''
key = '这个女孩身高170厘米'
print(re.findall('\d+', key)[0])
'''
# 4 提取出http://和https://
'''
key = 'http://www.baidu.com and https://www.cnblogs.com'
print(re.findall('https?://', key))
'''
# 5 提取出 hello
'''
key = 'lalala<hTml>hello</HtMl>hahaha' # 输出的结果<hTml>hello</HtMl>
print(re.findall('<[hH][tT][mM][lL]>.*[/hH][tT][mM][lL]>',key))
'''
# 6 提取hit. 贪婪模式;尽可能多的匹配数据
'''
key = 'qiang@hit.edu.com' # 加?是贪婪匹配,不加?是非贪婪匹配
print(re.findall('h.*?\.', key))
'''
# 7 匹配出所有的saas和sas
'''
key = 'saas and sas and saaas'
print(re.findall('sa{1,2}s',key))
'''
# 8 匹配出 i 开头的行
'''
key = """fall in love with you
i love you very much
i love she
i love her
"""
print(re.findall('^i.*', key, re.M))
'''
# 9 匹配全部行
'''
key = """
<div>细思极恐
你的队友在看书,
你的闺蜜在减肥,
你的敌人在磨刀,
隔壁老王在练腰.
</div>
"""
print(re.findall('.*', key, re.S))
'''

案例题

re.findall 使用

1、re.findall 可以对多行进行匹配,并依据参数作出不同结果。

re.findall(取值,值,re.M)
- re.M :多行匹配
- re.S :单行匹配 如果分行则显示/n
- re.I : 忽略大小写
- re.sub(正则表达式, 替换内容, 字符串)

爬虫常用正则、re.findall 使用的更多相关文章

  1. PHP 常用正则汇总

     平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:    }|d{})-((([-]{}))|([|]))-(([-]([-]{}))|([|]))$/   ([-]{}) ...

  2. php常用正则

    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0-9]*[1 ...

  3. 基于php常用正则表达整理(下)

    61        \n 匹配一个换行符.等价于 \x0a 和 \cJ.62        \r 匹配一个回车符.等价于 \x0d 和 \cM.63        \s 匹配任何空白字符,包括空格.制 ...

  4. (转)Java中使用正则表达式的一个简单例子及常用正则分享

    转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...

  5. 常用表单验证&&常用正则

    ### 表单验证&&常用正则 ;(function(ELF){ ELF = ELF || (window.ELF = {}); var reg = {}, pattern = { /* ...

  6. 正则替换replace中$1的用法以及常用正则

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...

  7. Java爬虫——常用的maven依赖

    java实现爬虫常用的第三方包: httpclient,for http jsoup,for dom rhino,for js jackson,for json pom.xml摘录 <depen ...

  8. Python3.x:正则 re.findall()的用法

    Python3.x:正则 re.findall()的用法 概念: 语法:findall(pattern, string, flags=0) 说明:返回string中所有与pattern相匹配的全部字串 ...

  9. 爬虫常用Xpath和CSS3选择器对比

    爬虫常用Xpath和CSS3选择器对比 1. 简介 CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大.CSS中的空白符' '和Xpath的'//'都表示 ...

随机推荐

  1. 公益:开放一台Nacos服务端给各位Spring Cloud爱好者

    之前开放过一台公益Eureka Server给大家,以方便大家在阅读我博客中教程时候做实验.由于目前在连载Spring Cloud Alibaba,所以对应的也部署了一台Nacos,并且也开放出来,给 ...

  2. Redis系列---redis简介01

    一. 本章我们将用简短的几句话来帮助你快速的了解什么是redis,初学者不必深究 1 Redis简介 Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写 ...

  3. MSSQL查询当前登录进程以及执行状态

    --当前连接进程declare @tempTable table (SPID INT,Status VARCHAR(255), Login VARCHAR(255),HostName VARCHAR( ...

  4. C# 同步转异步 AutoResetEvent

    当我们的程序运行时,调用了一段异步的逻辑A,这段异步的逻辑无法转化为同步(如动画.下载进度等) 而,我们又需要等待异步逻辑A处理完成,然后再执行其它逻辑B. AutoResetEvent 同步转异步 ...

  5. 无法打开锁文件 /var/lib/dpkg/lock-frontend - open

    转自:https://blog.csdn.net/sinat_29957455/article/details/89036005 在使用apt-get安装程序的时候报: E: 无法打开锁文件 /var ...

  6. 猪肉涨价飞快?让我们用python来预测一下今年最后一个月的猪肉价格吧!

    今天我们将使用Facebook的“先知”模型来预测2019年12月广东省的猪肉价格,本实验仅供参考. 1.准备数据 在猪价系统网站上利用开发者工具获得过去一年广东省的猪肉价格保存为json格式:htt ...

  7. 脚本自动统计安卓log中Anr、Crash等出现的数量(Python)

    作为测试,在测试工作中一定会经常抓log,有时log收集时间很长,导致log很大,可能达到几G,想找到能打开如此大的log文件的工具都会变得困难:即使log不大时,我们可以直接把log发给开发同学去分 ...

  8. Javase之集合体系(3)之Set及其子类知识

    集合体系之Set及其子类知识 Set(接口) public interface Set<E>extends Collection<E> ​ 特点:无序(存储顺序与取出顺序不一致 ...

  9. Redis—负载状态

    服务端启动与客户端连接 # 服务端启动# 客户端连接:host:远程redis服务器IP.port:远程redis服务端口.password:远程redis服务密码(无密码就不需要-a参数了) [ro ...

  10. Python—变量详解

    变量赋值 a = 1 b = 2 c = 3 print a, b, c # 1 2 3 a = b = c = 1 print a, b, c # 1 1 1 a, b, c = 1, 2, 3 p ...