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实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
使用python实现BLAST
Feb 12 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
python实现简单颜色识别程序
Feb 19 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
Python 如何批量更新已安装的库
May 26 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python实现归一化算法详情
Mar 18 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
php whois查询API制作方法
2011/06/23 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
CI框架附属类用法分析
2018/12/26 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
js倒计时显示实例
2016/12/11 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python日志模块logbook使用方法
2019/09/19 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
模范教师事迹材料
2014/02/10 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
党建目标管理责任书
2014/07/25 职场文书
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技