不管是哪种编程语言,学习正则是一节必修课,python也是如此。正则通常被用来做什么?处理复杂的字符串及文本。比如,提取RTL的begin end之间的内容,提取verilog的模块端口完成自动例化,处理APR的io file等。用好正则,常常可以事半功倍。
为了更轻松愉快地学习正则,我们分成三次讲解:
一、特殊字符和基本用法
二、复杂规则
三、一些实例
本文是第一次讲解,介绍正则的特殊字符和基本用法。
温故而知新
回顾一:
在《python的数据类型(三):字符串》中已经介绍过一些字符串的处理函数,先来一起回顾一下,见下图,不记得的同学可以点击链接看看。
回顾二:
与Perl语言的正则对比着学习,可以加深理解和记忆。下面是两篇Perl正则的介绍:
Perl在ASIC中的应用——高级篇(1):Perl的正则表达式
Perl在ASIC中的应用——实战篇(3):网表处理
基本语法介绍
在正则的概念里,有一个术语叫“匹配”,匹配就是利用一些特殊字符如 . * + 等来描述一个字符串。比如有字符串'abbbc',我们可以用'ab+c'来描述。又如verilog的begin end块可以用'begin.*end'来描述。我们可以看到,匹配不仅仅描述某一个字符串,而是描述某一类字符串。
与Perl不同,Perl的正则是语言结构的一部分,而Python的正则是定义在模块包re里,使用时需要先import re。
下面,我们先来看看python正则的基本用法,为了简单、容易入门,这次主要介绍与Perl正则语法类似的部分。
特殊字符
. 除外的任意字符
^ 字符串的开头
$ 字符串的结尾
字符串边界
B 非边界
d 数字0到9
D 非数字
s 空白字符
S 非空白字符
w 字母a-z,A-Z,和下划线_
W 大小写字母和下划线 以外的其它字符
A 字符串开头
Z 字符串结尾
特殊字符前加转义表示字符本身
空白字符
换行符newline 0x0a
制表符tab
回车符0x13
换页符
垂直制表符
123下一页>(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )