【归纳】正则表达式及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 ...
随机推荐
- 一位月薪1.2w的北漂程序员真实生活!
“ 每个人都有一条生活道路.千万人,千万条,各不相同,各有特点.但是并不是好人都有一条好路,坏人都有一坏路.有的时候却恰恰相反.这虽然不是历史的必然,但却是客观社会存在的.今天咱们说的这部书是发生在当 ...
- Centos7.x做开机启动脚本
cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) uname -r 3.10.0-693.11.1.el7.x86_64 vim ...
- 追逐心目中的那个Ta
申明:全篇皆为作者臆想,浪漫主义代表派作品,若有雷同,纯属巧合 人生最难过的不就是在一无所有的年纪里遇到了最想呵护一生的人,而在拥有一切的时候却失去了不顾一切的心. 长夜漫漫,本是相思人,偏听多情曲, ...
- Linux重启命令
Linux和windows不同,linux后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态.甚至在有的系统中会损坏硬件设备.而在系统关机前使用shutdown命令,系统管 ...
- openstack搭建之-glance配置(9)
一. base节点配置 #设置数据库,创建glance数据库,并设置权限 mysql -u root -proot CREATE DATABASE glance; GRANT ALL PRIVILEG ...
- Array.prototype.reduce()
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initialValue]) c ...
- AtCoder Beginner Contest 122 D - We Like AGC(DP)
题目链接 思路自西瓜and大佬博客:https://www.cnblogs.com/henry-1202/p/10590327.html#_label3 数据范围小 可直接dp f[i][j][a][ ...
- pycharm项目上传到Github
使用本地代码直接share到github上过程中出现了一个问题: Successfully created project 'xxx' on GitHub, but initial push fail ...
- mysql配置记录
[mysqld] datadir=/app/data/mysql socket=/app/data/mysql/mysql.sock symbolic-links=0 validate_passwor ...
- go/node/python 多进程与多核cpu
node node单线程,没有并发,但是可以利用cluster进行多cpu的利用.cluster是基于child_process的封装,帮你做了创建子进程,负载均衡,IPC的封装. const clu ...