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计算圆周率pi的方法
Jul 11 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
python中下标和切片的使用方法解析
Aug 27 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
Python自动化操作实现图例绘制
Jul 09 Python
python xlsxwriter模块的使用
Dec 24 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php fckeditor 调用的函数
2009/06/21 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
详解js异步文件加载器
2016/01/24 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
活动总结模板
2014/05/09 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
员工聘用合同范本
2015/09/21 职场文书