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 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
Python实现的txt文件去重功能示例
Jul 07 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Python中的With语句的使用及原理
Jul 29 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 Python
python读取mnist数据集方法案例详解
Sep 04 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
js实现3D旋转效果
2020/08/18 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
Python while循环使用else语句代码实例
2020/02/07 Python
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
村官工作鉴定评语
2014/01/27 职场文书
向领导表决心的话
2014/03/11 职场文书
数学教师求职信范文
2015/03/20 职场文书
对学校的意见和建议
2015/06/04 职场文书
公司人事管理制度
2015/08/05 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang