【归纳】正则表达式及Python中的正则库
正则表达式
正则表达式30分钟入门教程
runoob正则式教程
正则表达式练习题集(附答案)
- 元字符
\b
代表单词的分界处,在英文中指空格,标点符号或换行- 例子:
\bhi\b
可以用来匹配hi这个单词,且不会匹配到him,china或sushi. - 注意\b并不匹配任何字符,它只匹配一个位置
- 例子:
- 元字符
.
代表除了换行符以外的任意字符 - 元字符
*
代表数量:它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配- 另一个指代数量的方式是:
{n}
,这里的n可以填入任何数字,代表前面内容的重复次数,比如两个数字:\d{2}
- 另一个指代数量的方式是:
- 更多的元字符
- 使用分枝条件
|
时,要注意各个条件的顺序,因为匹配分枝条件时,算法将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
一张图速记正则式
Python中的正则库(re)
- 使用match函数来进行正则匹配:
re.match(正则式, 要匹配的字符串)
- 如果匹配成功,match函数将返回一个SRE_Match对象,该对象包含两个方法:
- group()方法可以输出匹配到的内容
- span()方法可以输出匹配到的内容在原字符串中的位置范围
- 使用
()
可以在匹配到的内容中进一步提取想要的字符串,这些子表达式可通过group(索引)
来获得 - 注意match()方法是从前往后匹配的,如果开头不一致,就得不到匹配结果
- search()方法在匹配时会扫描整个字符串,所以更适合用来做搜索
- match和search方法都可以传入第三个参数——修饰符
- 修饰符re.I:使匹配对大小写不敏感
- 修饰符re.S:使
.
(通配符)匹配包括换行符在内的所有字符,这个修饰符在匹配HTML文本时非常常用
- findall()方法能匹配到符合要求的所有内容,而search()只匹配符合要求的第一个内容
- findall()的返回结果为列表
- sub()方法可以用来修改匹配内容:
re.sub('匹配内容','替换内容’,目标字符串)
- compile()方法可以用来封装正则式和修饰符
【归纳】正则表达式及Python中的正则库的更多相关文章
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- Python中的正则
regex_lst = [ ('字符组',), ('非打印字符',), ('特殊字符',), ('定位符',), ('限定符',), ('re模块',), ('分组命名',), ('或匹配',), ( ...
- js中正则表达式与Python中正则表达式的区别
今天女票让我帮她写一个js中的正则,来提取电话号码,对于正则规则来说,js与python是基本没有区别的,重点的区别是在一些函数与方法中. python中的正则提取: import re str = ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- Python中使用第三方库xlrd来写入Excel文件示例
Python中使用第三方库xlrd来写入Excel文件示例 这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表 ...
- 常用正则表达式与python中的re模块
正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...
- 正则表达式在python中的简单使用
正则表达式独立与编程语言,基本上所有的编程语言都实现了正则表达式的相关操作.在Python中正则表达式的表现为re模块: import re 其操作有三个方法: my_string = "h ...
- 【转】利用Python中的mock库对Python代码进行模拟测试
出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/transla ...
- 正则表达式与python中re模块
一个网站,正则表达式入门的,很好 http://www.jb51.net/tools/zhengze.html 下面这个包含对python中re的介绍,也是很不错的http://www.w3cscho ...
随机推荐
- 一本通 1223:An Easy Problem
\[传送门qwq\] [题目描述] 给定一个正整数N,求最小的.比N大的正整数M,使得M与N的二进制表示中有相同数目的1. 举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么 ...
- vue 图片懒加载 vue-lazyload
图片懒加载 在实际的项目开发中,我们通常会遇见这样的场景:一个页面有很多图片,而首屏出现的图片大概就一两张,那么我们还要一次性把所有图片都加载出来吗?显然这是愚蠢的,不仅影响页面渲染速度,还浪费带宽. ...
- 第二部分之RDB持久化(第十章)
RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态.(数据库状态:服务器中的非空数据库以及它们的键值对统称为数据库状态) 一.RDB文件的创建 ...
- 部署alinode监控线上应用
参考: https://segmentfault.com/a/1190000013089124
- 如何使用Excel表格状态栏动态查看统计
该文是以前的博文,本文中有一列是快递单号,其实这一列根本不需要,一般快递几天就到,在excel表中存快递单号,纯属浪费时间,快递单号一般都会有客户留存联,而且也登入了网上的表格,所以个人用的excel ...
- Qt中实现将float类型转换为QString类型
在使用Qt Creator编程时,难免会用到将float类型转换为QString类型的时候下面是我所有的方法: 1. 将QString类型转化为float类型,很简单 QString data; fl ...
- 配置启动MySQL的Docker容器
docker run -d -p : --name mysql -e MYSQL_ROOT_PASSWORD= mysql:
- Scrapy 框架 配置文件
配置文件 基本配置 #1.项目名称,默认的USER_AGENT由它来构成,也作为日志记录的日志名 BOT_NAME = 'Amazon' #2.爬虫应用路径 SPIDER_MODULES = ['Am ...
- 【并发编程】一个最简单的Java程序有多少线程?
一个最简单的Java程序有多少线程? 通过下面程序可以计算出当前程序的线程总数. import java.lang.management.ManagementFactory; import java. ...
- scrapy之使用LinkExtractor提取链接
一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow ...