python中正则表达式与模式匹配


Posted in Python onMay 07, 2019

一、前言

在之前找工作过程中,面试时经常被问到会不会python,懂不懂正则表达式。心里想:软件的东西和芯片设计有什么关系?咱也不知道因为啥用这个,咱也不敢问啊!在网上搜索到了一篇关于脚本在ASIC领域中应用的文章(原文见参考文献1),里边提到了python的用武之地:

python中正则表达式与模式匹配

本文以《Python编程快速上手——让繁琐工作自动化》书中的示例,讲述利用python实现文本中特定内容提取的方式。

 二、提取特定内容示例

需求:找出文本中所有的电话号码和邮件地址。设计方案:在剪贴板的文本中提取出所有与电话号码和邮件地址格式匹配的字符串。有了需求和设计方案,现根据电话号码和邮箱地址格式编写正则表达式。先来看看程序代码,再做讲解。

PhoneAndEmail.py

此处电话号码的格式是:三个数字组成的区号(可选),三个数字,四个数字,任意数空格+ext/x/ext.+任意数空格+2到5个数字组成的分机号(可选)。每个部分间以“-”号连接。邮箱地址格式:由字母、数字以及_%+-符号组成的用户名,@符号以及.后的域名,域名由2-4个字母和数字集合组成。根据上述模式可编写对应的正则表达式。

python的模式匹配有一个简单固定的套路,import导入re包,regex = re.compile('''<正则表达式>''')。<模式匹配的内容列表> = regex.findall(<待搜索字符串>)。三步搞定。编写正则表达式时,在字符串前加r防止字符转义。将各个部分分组并换行以提高代码的可读性,此时需要将re.VERBOSE作为re.compile()函数的第二个参数传入来忽略表达式中的空白和换行。

 三、运行结果

复制代码首部注释掉的文本,然后运行程序。结果如下:

python中正则表达式与模式匹配

前两行打印出了匹配内容的列表,之后以自定义的统一格式打印欲搜索的内容。程序运行结果正确。本文以一个小例子测试了python正则表达式提取文本特定内容的功能,之后想尝试利用python自动生成verilogHDL中module的例化模板。

总结

以上所述是小编给大家介绍的python正则表达式匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
Python使用matplotlib绘制动画的方法
May 20 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
pycharm的console输入实现换行的方法
Jan 16 Python
python协程之动态添加任务的方法
Feb 19 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
django orm模块中的 is_delete用法
May 20 Python
用opencv给图片换背景色的示例代码
Jul 08 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 #Python
python对象与json相互转换的方法
May 07 #Python
python使用threading.Condition交替打印两个字符
May 07 #Python
python实现银联支付和支付宝支付接入
May 07 #Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 #Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 #Python
Python数据类型之Set集合实例详解
May 07 #Python
You might like
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
php curl模拟post请求小实例
2013/11/13 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
对Python中内置异常层次结构详解
2018/10/18 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
基于Python测试程序是否有错误
2020/05/16 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
日语专业个人的求职信
2013/12/03 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
教研处工作方案
2014/05/26 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
平安建设汇报材料
2014/12/29 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis