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 域名分析工具实现代码
Jul 15 Python
python自动化测试实例解析
Sep 28 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
深入解析Python中的线程同步方法
Jun 14 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
python实现蒙特卡罗方法教程
Jan 28 Python
python跳出双层for循环的解决方法
Jun 24 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
django 扩展user用户字段inlines方式
Mar 30 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
Python读取Excel一列并计算所有对象出现次数的方法
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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php google或baidu分页代码
2009/11/26 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
Python实现FLV视频拼接功能
2020/01/21 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
C#面试常见问题
2013/02/25 面试题
先进班级集体事迹材料
2014/01/30 职场文书
物业管理专业求职信
2014/06/11 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
黄埔军校观后感
2015/06/10 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python