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构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python的requests网络编程包使用教程
Jul 11 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Flask框架Flask-Login用法分析
Jul 23 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
python return逻辑判断表达式实现解析
Dec 02 Python
解决python 找不到module的问题
Feb 12 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python实现简单井字棋小游戏
Mar 05 Python
Python使用requests模块爬取百度翻译
Aug 25 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中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
python实现图片批量剪切示例
2014/03/25 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
理解python中生成器用法
2017/12/20 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python装饰器用法实例分析
2019/01/14 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python实现壁纸下载与轮换
2020/10/19 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
高中考试作弊检讨书
2014/01/14 职场文书
公司面试感谢信
2014/02/01 职场文书
数控个人求职信范文
2014/02/03 职场文书
触电现场处置方案
2014/05/14 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
党员违纪检讨书
2015/05/05 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang