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实现读取并显示图片的两种方法
Jan 13 Python
使用django实现一个代码发布系统
Jul 18 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
详解python中docx库的安装过程
Nov 08 Python
wxPython实现带颜色的进度条
Nov 19 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python更换pip源方法过程解析
May 19 Python
python属于软件吗
Jun 18 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
python实现简单的井字棋
May 26 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
javascript中new关键字详解
2015/12/14 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
python selenium循环登陆网站的实现
2019/11/04 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
大学毕业通用个人的求职信
2013/12/08 职场文书
2014年情人节活动方案
2014/02/16 职场文书
恰同学少年观后感
2015/06/08 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书