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实现控制台中的进度条功能代码
Dec 22 Python
Django中cookie的基本使用方法示例
Feb 03 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
Javascript 二维数组
2009/11/26 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python实现字典依据value排序
2016/02/24 Python
python 日志增量抓取实现方法
2018/04/28 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
饮料业务员岗位职责
2013/12/15 职场文书
客户答谢会活动方案
2014/08/31 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
运动会800米赞词
2015/07/22 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android