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迭代用法实例教程
Sep 08 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
Django中间件实现拦截器的方法
Jun 01 Python
使用Python来开发微信功能
Jun 13 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
python系列 文件操作的代码
Oct 06 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
python爬虫调度器用法及实例代码
Nov 30 Python
python编程的核心知识点总结
Feb 08 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生成静态页
2006/11/25 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
计算机专业推荐信范文
2013/11/20 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
装修设计师求职信
2014/02/26 职场文书
学习十八大演讲稿
2014/09/15 职场文书
PHP命令行与定时任务
2021/04/01 PHP
redis protocol通信协议及使用详解
2022/07/15 Redis