首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python精讲之初级正则表达式(1)

写在前面:

首先说明正则表达式是什么:

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语: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 编程

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180310G0ODLE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券