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和IPython中使用Docker
Apr 28 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
python实现给数组按片赋值的方法
Jul 28 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
浅谈Python中的函数(def)及参数传递操作
May 25 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python with statement 进行文件操作指南
2014/08/22 Python
Python3读取zip文件信息的方法
2015/05/22 Python
Python多线程实现同步的四种方式
2017/05/02 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
Tensorflow累加的实现案例
2020/02/05 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
selenium如何定位span元素的实现
2021/01/13 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
《黄山奇石》教学反思
2014/04/19 职场文书
2014年党课学习材料
2014/05/11 职场文书
五一促销活动总结
2014/07/01 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
努力工作保证书
2015/02/28 职场文书
复兴之路展览观后感
2015/06/02 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang