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中实现两个字典(dict)合并的方法
Sep 23 Python
Python入门篇之数字
Oct 20 Python
Python类的专用方法实例分析
Jan 09 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
python Cartopy的基础使用详解
Nov 01 Python
Python中time标准库的使用教程
Apr 13 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与SQL注入攻击[二]
2007/04/17 PHP
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP加密解密函数详解
2015/10/28 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
setTimeout和setInterval的深入理解
2013/11/08 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
Python和Sublime整合过程图示
2019/12/25 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
如何用python 操作zookeeper
2020/12/28 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
益模软件Java笔试题
2012/03/27 面试题
介绍一下MD5加密算法
2016/11/12 面试题
社区党总支书记先进事迹材料
2014/01/24 职场文书
2014年内勤工作总结
2014/11/24 职场文书
通知函格式范文
2015/04/27 职场文书
战马观后感
2015/06/08 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
用python画城市轮播地图
2021/05/28 Python