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 08 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
使用Pyinstaller的最新踩坑实战记录
Nov 08 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
详解Python绘图Turtle库
Oct 12 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python爬虫之爬取某文库文档数据
Apr 21 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实现以只读方式打开文件的方法
2015/03/16 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
python assert的用处示例详解
2019/04/01 Python
基于python实现文件加密功能
2020/01/06 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
别名指示符是什么
2012/10/08 面试题
建筑工程技术应届生求职信
2013/11/17 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
公务员考察材料范文
2014/12/23 职场文书
美术教师个人工作总结
2015/02/06 职场文书
党员自我评价范文2015
2015/03/03 职场文书
网吧温馨提示
2015/07/17 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
SQL SERVER中的流程控制语句
2022/05/25 SQL Server