【归纳】正则表达式及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 ...
随机推荐
- [LeetCode]2. 两数相加
题目链接:https://leetcode-cn.com/problems/add-two-numbers/ 题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 ...
- JDB与迭代
要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正常如c(3,2).异常 ...
- 云端安装MQTT服务器
如果自己下载的3.1版本的MQTT, 安装步骤参考 https://developer.emqx.io/docs/emq/v3/cn/install.html 配置用户名和密码第一种是用http ht ...
- 如何给CentOS 安装Vmware Tools
1.打开电脑中的VMware Workstation 软件,并启动安装了CentOS6.9系统的虚拟机 2.点击“”other”,在Username中输入root,在Password ...
- jQuery 事件冒泡
1 . 什么是冒泡 在页面上可以有多个事件,也可以多个元素响应同一个事件.假设网页上有两个元素,其中一个元素嵌套在另一个元素里,并且都被绑定了 click 事件,同时<body>元素上也绑 ...
- Python——匿名函数
一.定义: 是指一类无需定义标识符(函数名)的函数或子程序 二.语法格式: lambda 参数:表达式 三.注意事项: lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值 ...
- ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)【奇葩的bug】
# Bug描述 今天周末,在家里学点新技术,虽然公司分配的任务没有完成(滑稽滑稽) 我先创建了一个mysql数据库,用root用户创建一个新用户,毕竟项目中使用root是非常危险的,尤其是我这样的实 ...
- P1313 计算系数 HMR大佬讲解
今天,HMR大佬给我们讲解了这一道难题. 这道题明显的二项式定理,自然想到了要用到杨辉三角了.基本思路就是先用for循环求出杨辉三角,这样就求出了x的n次方的系数和y的m次方的系数. 这是大佬的AC代 ...
- LOJ #2719. 「NOI2018」冒泡排序(组合数 + 树状数组)
题意 给你一个长为 \(n\) 的排列 \(p\) ,问你有多少个等长的排列满足 字典序比 \(p\) 大 : 它进行冒泡排序所需要交换的次数可以取到下界,也就是令第 \(i\) 个数为 \(a_i\ ...
- 利用 UDF 轻松迁移
位运算.布尔运算和逐位运算的乐趣 如果您正从支持位运算.布尔运算以及一些函数的数据库迁移到 IBM® DB2® Universal Database™(UDB),那么您也许会对如何在 DB2 中处理这 ...