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中统计函数运行耗时的方法
May 05 Python
python学习数据结构实例代码
May 11 Python
Python3读取文件常用方法实例分析
May 22 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
Python制作简易注册登录系统
Dec 15 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
TensorBoard 计算图的查看方式
Feb 15 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
python爬虫使用requests发送post请求示例详解
Aug 05 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
oracle资料库函式库
2006/10/09 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
JavaScript数组去重实现方法小结
2020/01/17 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
python爬虫基础知识点整理
2020/06/02 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
django使用channels实现通信的示例
2020/10/19 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
骨干教师培训制度
2014/01/13 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书