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创建和使用字典实例详解
Nov 01 Python
python实现的简单文本类游戏实例
Apr 28 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python中的日期时间处理详解
Nov 17 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
详解Python做一个名片管理系统
Mar 14 Python
wxPython实现文本框基础组件
Nov 18 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 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
php5.3 废弃函数小结
2010/05/16 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
node.js学习之断言assert的使用示例
2017/09/28 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python实现ip代理池功能示例
2019/07/05 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
Weblogc domain问题
2014/01/27 面试题
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
课外科技活动总结
2014/08/27 职场文书
初中差生评语
2014/12/29 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python