行业新闻
正则表达式匹配手机号码(11位手机号正则表达式匹配)
2022-02-24 13:44  浏览:2

0基础学python(82)

经过上一节比较枯燥的基础内容,今天来看看如何利用正则表达式在Python中进行具体操作。

在Python中使用正则表达式,首先要导入一个re模块。re就是Regular Expression(正则表达式)的缩写,所以导入re模块就是导入”正则表达式模块”。

导入re模块的代码比较简单,它是这样的:

Import re

今天的学习内容就是使用正则表达式匹配字符串。

匹配字符串的实际意义就是查找、查询字符串。在Python中,使用正则表达式匹配字符串,多数情况下,匹配成功后立即返回Match对象,不成功就返回None值。

None值就是假值,这个不用多述。

Match对象是什么呢?就是用一对首位标签”<>”,包含了一次匹配的结果,其中包含了很多的信息,包括有:待匹配的字符串文本、使用的正则表达式、搜索起始位置、搜索结束位置等等。

Match对象可以通过以下几种方法来实现:

“.group() 获得匹配的字符串内容”

“.start() 匹配字符串在原始字符串的开始位置”

“.end() 匹配字符串在原始字符串的结束位置”

“.span() 返回(.start(), .end())”

现在来正式介绍Python中使用正则表达式匹配字符串匹配字符串的具体操作方法:

1、match()方法

这个方法的用途是匹配字符串开头的字符,它从字符串的起始处开始匹配,匹配成功后立即返回Match对象,不匹配则返回None值,它的语法格式如下:

re.match(pattern,string,[flags])

方法名关键字match前一定要加上re模块名称,并使用”.”连接;

小括号内有三个参数使用逗号”,”分隔;

第一个参数就是正则表达式pattern(模板),属于必填参数;

第二个参数是要匹配的字符串string,也属于必填参数;

第三个参数是标志位,用来控制匹配的方式,属于可选参数,并且Python中的常用标志如下图所示:

例图1

来看一个例子:匹配字符串是否已以”i_”开头,详见下图:

例图2

可以看到,第一次匹配的时候没有区分字母大小写,匹配成功了返回为Match对象,并使用Match对象三种操作方法得到了起始位置、结束位置和匹配数据。

第二次匹配去掉了第三个可选的参数,结果返回了None值,后面对Match对象的操作方法就无效了,出现了异常。

2、search()方法

这个方法是在整个字符串中找到第一个匹配字符,匹配成功返回Match对象,不匹配则返回None值,它的语法格式如下:

re.search(pattern,string,[flags])

由于它的语法参数和match()方法是一样的,所以就直接在上面的例子中的字符串中开头加一点东西,再作为例子来实验一下,详见下图:

例图3

可以看到,它的匹配字符虽然不在字符串的开头,但是第一次匹配时也搜索出来了,第二次则是因为没有设定不区分大小写,所以没有与大写的字母匹配,返回了None值。

3、findall()方法

这种方法的功能就比前两种要强大一些,它是匹配字符串中所有的合乎规则的字符,并将所有的匹配结果返回成为一个列表,匹配成功就返回一个有内容的列表,不成功则返回一个空列表。语法格式如下所示:

re.findall(pattern,string,[flags])

格式很雷同,参数用法也和前两种方法一样,直接上例子,详见下图:

例图4

可以看到,findall()方法的执行结果和前两种方法是完全不同的。

接下来用两个小场景模拟实例,来看看正则表达式匹配字符串在生活中可以有什么应用。

第一个场景是模拟查询手机号码是否属于中国电信,来看下图代码:

例图5

第二个场景是搜索输入内容中有没有自己感兴趣的语句,最终我选择了搜索关于”钱”的内容,请看下图:

例图6

今天的内容就是这些了,感谢大家一直以来的支持,明天开始奉上的是”使用re模块实现正则表达式的替换字符串操作“的内容,敬请拭目以待。