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的PIL模块来进行图片对比
Feb 18 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python Grid使用和布局详解
Jun 30 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
python中的协程深入理解
Jun 10 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
在django中自定义字段Field详解
Dec 03 Python
基于python和flask实现http接口过程解析
Jun 15 Python
python Zmail模块简介与使用示例
Dec 19 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 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
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Python的互斥锁与信号量详解
2019/09/12 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
python小白学习包管理器pip安装
2020/06/09 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
外语学院毕业生的自我鉴定
2013/11/28 职场文书
自荐信范文
2013/12/10 职场文书
购房意向书范本
2014/04/01 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
python实现过滤敏感词
2021/05/08 Python