python 正则表达式 概述及常用字符


Posted in Python onMay 04, 2009

1.元字符:
. 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行
^ 匹配行首。除非设置 MULTILINE 标志,它只是匹配字符串的开始。
$ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。
* 重复0或N次
+ 重复1或N次
? 重复0或1次
{} 该限定符的意思是至少有 m 个重复,至多到 n 个重复
[] 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集
\ 反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了
| 可选项,或者 "or" 操作符。
() 组
2.[akm$]将匹配字符"a", "k", "m", 或 "$" 中的任意一个;"$"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。
3.用 "\" 开始的特殊字符所表示的预定义字符集
\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类 [^\t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。
\A 只匹配字符串首。当不在 MULTILINE 模式,\A 和 ^ 实际上是一样的。然而,在 MULTILINE 模式里它们是不同的;\A 只是匹配字符串首,而 ^ 还可以匹配在换行符之后字符串的任何位置。
\Z 只匹配字符串尾。
\b 单词边界。这是个零宽界定符(zero-width assertions)只用以匹配单词的词首和词尾。单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。
\B 另一个零宽界定符(zero-width assertions),它正好同 \b 相反,只在当前位置不在单词边界时匹配。
4.重复元字符
* 重复0或N次
+ 重复1或N次
? 重复0或1次
{m,n},其中 m 和 n 是十进制整数。该限定符的意思是至少有 m 个重复,至多到 n 个重复
5.RegexObject对象常用方法
match() 决定 RE 是否在字符串刚开始的位置匹配
search() 扫描字符串,找到这个 RE 匹配的位置
findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回
finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回
6.MatchObject对象的常用方法
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置
7.编译标志
DOTALL, S     使 . 匹配包括换行在内的所有字符
IGNORECASE, I     使匹配对大小写不敏感
LOCALE, L     做本地化识别(locale-aware)匹配
MULTILINE, M     多行匹配,影响 ^ 和 $
VERBOSE, X     能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂

Python 相关文章推荐
Python判断变量是否已经定义的方法
Aug 18 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
PyQt实现界面翻转切换效果
Apr 20 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
利用Python如何批量更新服务器文件
Jul 29 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
Django单元测试工具test client使用详解
Aug 02 Python
基于Pytorch SSD模型分析
Feb 18 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 Python
用python实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 #Python
Python 自动安装 Rising 杀毒软件
Apr 24 #Python
Python 解析XML文件
Apr 15 #Python
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 #Python
python thread 并发且顺序运行示例
Apr 09 #Python
python 判断一个进程是否存在
Apr 09 #Python
python ElementTree 基本读操作示例
Apr 09 #Python
You might like
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
php mysql 封装类实例代码
2016/09/18 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python collections模块实例讲解
2014/04/07 Python
简单解析Django框架中的表单验证
2015/07/17 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
详解python中的线程与线程池
2019/05/10 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL