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中的装饰器的用法
Apr 24 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
python实现外卖信息管理系统
Jan 11 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
对python多线程与global变量详解
Nov 09 Python
详解Python函数式编程—高阶函数
Mar 29 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
Python循环之while无限迭代
Apr 30 Python
python playwrigh框架入门安装使用
Jul 23 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和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
毕业生自荐书
2014/02/03 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
被委托人身份证明
2015/08/07 职场文书
情况说明书怎么写
2015/10/08 职场文书
护士业务学习心得体会
2016/01/25 职场文书