Python for Informatics 第11章之正则表达式(二)


Posted in Python onApril 21, 2016

注:以下文章原文来自于Dr Charles Severance 的 《Python for Informatics》

11.1 正则表达式的字符匹配

我们可以用许多其它的特殊字符创建更加强大的正则表达式。最常用的特殊符号是可匹配任何字符的句号(".")。在以下的示例中,正则表达式”F..m:“将匹配”From:”,“Fxxm:",”F12m:“,或者”F!@m:“等类似字符串,因为表达式中间的句号可匹配任何字符。

import re
 hand = open('mbox-short.txt')
 for line in hand:
  line = line.rstrip()
  if re.search('^F..m:', line):
   print line

在正则表达式中组合使用表示一个字符任意重复次数的星号(”*")和加号("+")会使表达式特别强大。其中星号表示在查找的字符串中,匹配字符可以重复出现零次以上,而加号则是重复一次以上。

在下面的示例中,我们使用重复的通配符进一步缩小我们的查找范围:

import re
 hand = open('mbox-short.txt')
 for line in hand:
  line = line.rstrip()
  if re.search('^From:.+@', line):
   print(line)

查找字符串“From:.+@”将成功匹配那些以“From:”开头,接着跟着一个以上任意字符,再跟着一个“@”符的行。所以这会匹配类似以下的行:

From: stephen.marquard @uct.ac.za

这个".+"通配符扩展匹配所有从冒号到@符之间的所有字符。

From:.+@

加号和星号符的“一意孤行”的被认为是好的。例如以下的字符串将被外推至最后的@符而匹配:

From:stephen.marquard@uct.ac.za, csev@umich.edu, and cwen @iupui.edu

让星号符和加号符不这么贪婪也是可以的,但是需要添加另外的符号。如何关闭它们贪婪的行为请参看详细的文档。

相关阅读:

关于Python for Informatics 第11章 正则表达式(二)的相关内容就给大家介绍这么多,后续还会持续更新,更多精彩内容敬请关注!

Python 相关文章推荐
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
Python读写unicode文件的方法
Jul 10 Python
pyenv命令管理多个Python版本
Mar 26 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
Jan 11 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
python实现串口通信的示例代码
Feb 10 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Python 列表推导式需要注意的地方
Oct 23 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
python多线程和多进程关系详解
Dec 14 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 #Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 #Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 #Python
Python实现HTTP协议下的文件下载方法总结
Apr 20 #Python
详解Python命令行解析工具Argparse
Apr 20 #Python
利用Python如何生成随机密码
Apr 20 #Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 #Python
You might like
php 方便水印和缩略图的图形类
2009/05/21 PHP
PHP 加密解密内部算法
2010/04/22 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python线性插值解析
2020/07/05 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
性能测试工程师的面试题
2015/02/20 面试题
最新的大学生找工作自我评价
2013/09/29 职场文书
配件采购员岗位职责
2013/12/03 职场文书
高中生毕业自我鉴定范文
2013/12/22 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
邀请函格式范文
2015/02/02 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
Python中使用ipython的详细教程
2021/06/22 Python