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 20 Python
python图片验证码生成代码
Jul 02 Python
Python 异常处理的实例详解
Sep 11 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
浅谈django rest jwt vue 跨域问题
Oct 26 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python合并pdf文件的工具
Jul 01 Python
Python 实现Mac 屏幕截图详解
Oct 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
php.ini 中文版
2006/10/28 PHP
mysql 搜索之简单应用
2007/04/27 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
详解Python3中的Sequence type的使用
2015/08/01 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
软件项目开发计划书
2014/05/01 职场文书
医院护士工作检讨书
2014/10/26 职场文书
委托书格式范文
2015/01/28 职场文书
项目投资意向书范本
2015/05/09 职场文书
村官2015年度工作总结
2015/10/14 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
JS实现扫雷项目总结
2021/05/19 Javascript
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS