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 相关文章推荐
python实现文本文件合并
Dec 29 Python
Python 加密的实例详解
Oct 09 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
Python中sort和sorted函数代码解析
Jan 25 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
通过python爬虫赚钱的方法
Jan 29 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
Python箱型图处理离群点的例子
Dec 09 Python
Python作用域与名字空间原理详解
Mar 21 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 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
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
详解javascript遍历方式
2015/11/11 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
深入理解Python中的元类(metaclass)
2015/02/14 Python
go语言计算两个时间的时间差方法
2015/03/13 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
python用Configobj模块读取配置文件
2020/09/26 Python
python 5个实用的技巧
2020/09/27 Python
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
params有什么用
2016/03/01 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
研究生导师推荐信
2014/09/06 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python