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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python批量查询、汉字去重处理CSV文件
May 31 Python
python实现简单的文字识别
Nov 27 Python
Python3爬虫全国地址信息
Jan 05 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Django ValuesQuerySet转json方式
Mar 16 Python
使用npy转image图像并保存的实例
Jul 01 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
使PHP自定义函数返回多个值
2006/11/26 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
stripos函数知识点实例分享
2019/02/11 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
jquery键盘事件使用介绍
2011/11/01 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python中的__slots__使用示例
2015/02/26 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
shallow copy和deep copy的区别
2016/05/09 面试题
异步传递消息系统的作用
2016/05/01 面试题
中专生职业生涯规划书范文
2013/12/29 职场文书
精神文明建设标语
2014/06/16 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
施工员岗位职责范本
2015/04/11 职场文书