写在前面:
首先说明正则表达式是什么:
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些需要的字符.
引自维基百科
在python中同样支持正则表达式,在re模块中储存了对应的正则对应方法,接下来就简单介绍一下正则表达式的入门知识.
首先,我们要明白我们的需求是什么,比如在key="daiuhfaiuhugaysqiehoiuuiwug"(随便打得)这一串字符串中匹配出自己想要的字符:
假设我们想匹配"gays"这么一串字符串:
结果:
这就是最简单的字符匹配的实现
可能有的朋友不知道语句中compile的作用
代码中re.compile将正则表达式(以字符串书写的)转换为模式对象,可以实现更加有效的匹配,当成一个编译函数即可,我们之后会详细说,
大家可能还有一个疑惑点就是在代码中的"r",这个字符的意思是将字符串中的转义字符过滤,不会进行转义,比如"\n"等等的特殊字符,不然很难匹配到,在上述代码中不存在转义字符,故删除r字符结果也没变.
PS:正则表达式是区分大小写的,在python里面也是,所以一定注意
介绍另一种正则的用法
结果如上所示,引出关于"."的描述,在正则表达式中,"."可以表示所有字符,包括其本身,所以在匹配知道特定区域而不知道特定内容的字符串中,可以使用"."将所有的匹配成功得字符输出
如果我们要用特殊的形式输出匹配的字符呢?比如下面这个代码可以输出包含所有匹配到的字符串的列表:
当然,你也可以在他后面加上对应的索引拿到其元素.
将上述代码换入程序中的结果,输出了list[0]元素
这时候有朋友可能会疑惑,既然"."用来匹配所有字符,那么它本身用什么匹配?
相信大多数有编程基础的朋友都知道"\"的作用
没错,就是转义,在python中的正则也可以这么用:
在前面的实例中,我们在下面代码中运用了"+",这里有必要作一下说明,在这里的+指的是对前方的字符进行多次匹配,而如果单独一个"."是没法将所有字符统统匹配出来的
只有一个空列表输出,在没有+的情况下.
在使用的情况下,可以匹配到在*号前的字符0次或者多次:
以上使用了*匹配法则
在要匹配的字符串中,有better和betterr这两个需要匹配出来的,那么如果只匹配一个r后面的另一个字符串便无法得到匹配,所以在python中定义了*可以匹配在其之前的字母0次或者多次.
上述我们说过,在python中,是区分大小写的,所以,如果我们要匹配同时大小写的字符串,我们就需要用到"[]"
[Bb]表示匹配大写小写的字母b
以此类推
即可得到我们想要的结果:
欢迎交流
Python编程Python 编程
领取专属 10元无门槛券
私享最新 技术干货