宝哥软件园

python中的正则表达式和模式匹配

编辑:宝哥软件园 来源:互联网 时间:2021-08-24

一、前言

在之前的求职过程中,经常有人问我懂不懂python和正则表达式。我心想:软件和芯片设计有什么关系?不知道为什么用这个,也不敢问!网上搜到一篇关于脚本在ASIC领域应用的文章(原文见参考文献1),其中提到了python的应用:

本文用《Python编程快速上手——让繁琐工作自动化》书中的一个例子来描述如何用python从文本中提取特定内容。

二、提取具体内容举例

要求:找出文中所有的电话号码和电子邮件地址。设计方案:从剪贴板文本中提取所有匹配电话号码和电子邮件地址格式的字符串。根据需求和设计方案,正则表达式按照电话号码和电子邮件地址的格式编写。先看程序代码,再解释。

PhoneAndEmail.py

这里电话号码的格式是:三个号码组成的区号(可选)、三个号码、四个号码、任意数量的空格ext/x/ext、任意数量的空格2到5组成的分机号码(可选)。每个部分都用“-”连接。电子邮件地址格式:由字母、数字和_ %-符号组成的用户名,@符号后的域名,2-4个字母和数字组成的域名。根据上面的模式,可以写出相应的正则表达式。

Python的模式匹配有一个简单而固定的例程,import import re package,regex=re.compile(‘‘正则表达式’‘)。模式匹配内容列表=regex.findall(要搜索的字符串)。三步。编写正则表达式时,在字符串前添加r以防止字符转义。为了提高代码的可读性,我们需要通过re。VERBOSE作为re.compile()函数的第二个参数,忽略表达式中的空格和换行符。

三、操作结果

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

匹配内容列表在前两行打印出来,然后要搜索的内容以用户定义的统一格式打印出来。程序运行正常。本文用一个小例子来测试python正则表达式提取文本特定内容的功能,然后尝试用python在verilogHDL中自动生成模块的实例化模板。

摘要

以上是边肖介绍的python正则表达式匹配,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

更多资讯
游戏推荐
更多+