Python-正则表达式总结版
前言:
总是写不好正则表达式,时间长不用就有些忘记了,故此在总结一篇文章以便日后查阅。
一、常用的匹配规则总结表
模式 | 描述 |
---|---|
\w | 匹配字母数字及下划线 |
\W | 匹配非字母数字及下划线 |
\s | 匹配任意空白字符,等价于 [\t\n\r\f]. |
\S | 匹配任意非空字符 |
\d | 匹配任意数字,等价于 [0-9] |
\D | 匹配任意非数字 |
\A | 匹配字符串开始 |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 |
\z | 匹配字符串结束 |
\G | 匹配最后匹配完成的位置 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾 |
. | 匹配任意字符,除了换行符 |
[...] | 用来表示一组字符,单独列出:[amk] 匹配 'a','m' 或 'k' |
[^...] | 不在 [] 中的字符:[^abc]匹配除了 a,b,c 之外的字符。 |
* | 匹配 0 个或多个的表达式。 |
+ | 匹配 1 个或多个的表达式。 |
? | 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式 |
{n} | 精确匹配 n 个前面表达式。 |
{n, m} | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
a \| b | 匹配 a 或 b |
( ) | 匹配括号内的表达式,也表示一个组 |
相关具体应用例子,请见:Python-正则表达式
二、re库中常用方法
函数 | 描述 |
---|---|
re.match(pattern, string, flags=0) | 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none |
re.search(pattern, string, flags=0) | 扫描整个字符串并返回第一个成功的匹配 |
re.sub(pattern, repl, string, count=0) | 用于替换字符串中的匹配项,repl : 替换的字符串,也可为一个函数 |
re.compile(pattern[, flags]) | 用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用 |
findall(string[, pos[, endpos]]) | 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表 |
re.split(pattern, string[, maxsplit=0, flags=0]) | 能够匹配的子串将字符串分割后返回列表 |
相关具体应用例子,请见:Python-正则表达式
三、修饰符总结
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M。
四、常用正则表达式
1、匹配email地址: [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])? 2、匹配网址URL: [a-zA-z]+://[^\s]* 3、匹配18位身份证号: ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ 4、匹配年月日格式: ([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))) 5、匹配整数: ^-?[1-9]\d*$ 6、匹配正整数: ^[1-9]\d*$ 7、匹配负整数: ^-[1-9]\d*$ 8、匹配空白行: \n\s*\r
以上,对你有帮助的话就点赞️吧~
作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java集合详解4:HashMap和HashTable
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80277176 微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源) 今天我们来探索一下HashMap和HashTable机制与比较器的源码。 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/10/collection4 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a724888 我的个人博客主要发原创文章,也欢迎浏览 https://h2pl.github.io/ 本...
- 下一篇
Jenkins 配置、启动参数(学习笔记七)
1、Jenkins启动时的命令行参数: 2、Master Slave Linux SSH Window WMI+DCOM 3、Jenkins最佳实践: Jenkins安全 有规律对Jenkins的HOME目录备份 4、构建支持:ant maven windows batch shell python perl ruby 5、使用JENKINS数据库来管理用户
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长