Python基础语法 - 正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础语法 - 正则表达式相关的知识,希望对你有一定的参考价值。

概述

正则表达式是一个特殊的字符序列,它常常用于检查是否与某种模式匹配。第八节课主要介绍了从以下几方面介绍了Python正则表达式的用法。
(1)re模块的使用
(2)字符匹配、数量表示、边界表示
(3)正则表达式的高级用法
(4)贪婪与非贪婪模式

re模块

(一)match(正则表达式,待匹配字符串)
(1)采用从左向右逐项匹配,从起始位置起。
(2)用于正则匹配检查,如果“待匹配字符串”能够匹配“正则表达式”,则match方法返回匹配对象,否则返回None

import re #导入re模块

#从起始位置开始匹配
rs = re.match("51cto", "51cto.com") 
print(rs)

#不从起始位置开始匹配
rs = re.match("cn", "51cto.com") 

运行结果:

<_sre.SRE_Match object at 0x02B33FA8>
None

(二)group()方法 :用来返回字符串的匹配部分

import re

rs = re.match("51cto", "51cto.com")
print(rs.group())

运行结果:

51cto

字符匹配、数量表示、边界表示

(一)单字符匹配
技术分享图片
(1). 匹配除"\n"之外的任意单个字符

import re

rs = re.match(".","a")
print(rs.group())

rs = re.match(".","1")
print(rs.group())

rs = re.match("...","abc")    #多个字符
print(rs.group())

rs = re.match(".","\n")        #\n字符
print(rs)

运行结果:

a
1
abc
None

(2)\s:匹配任意空白字符,如空格,制表符“\t”,换行符“\n”

import re
rs = re.match("\s","\t")
print(rs)
rs = re.match("\s","\n")
print(rs)
rs = re.match("\s"," ")
print(rs)

(3)\S:匹配任意非空字符;和\s模式相反

rs = re.match("\S","\t")
print(rs)
rs = re.match("\S","abc")  #匹配单个字符,从起始位置
print(rs.group())

运行结果:

None
a

其他单字符匹配用法不一一列举。
(二)数量表示
技术分享图片
(1)* 出现次数 n >= 0

import re

rs = re.match("1\d*", "1234567")     #起始是1,后面int出现任意次
print(rs.group())

rs = re.match("1\d*", "1234567abc")     #起始是1,后面int出现任意次
print(rs.group())

运行结果:

1234567
1234567

(三)边界表示
(1)字符串与单词边界
(2)匹配分组

正则表达式的高级用法

贪婪与非贪婪模式

作业题

奶茶馆价格结算系统优化:
1、 使用正则表达式判断顾客输入的手机号是否符合手机号设置规则:
1) 以数字 1 开头
2) 第二位为 3578 中的任意数字
3) 其余 9 位为 0-9 任意数字
2、 输出手机号运营商,判断规则:
? 移动运营商:手机号前三位为 134、135、136、137、138、139、150、151、152、157、 158、159、178、182、183、184、187、188
? 联通运营商:手机号前三位为 130、131、132、155、156、176、185、186
? 电信运营商:手机号前三位为 133、153、173、177、180、181、189、199

3、 使用正则表达式判断输入奶茶编号,如果不在 1-5 范围内,输出: Woops!我们只售卖以上五种奶茶哦!新口味敬请期待! 并将判断过程设置为类中的方法。

以上是关于Python基础语法 - 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式基础---转自 Python正则表达式指南 前边

python正则表达式---正则表达式基础

python基础学习(十三)

python 正则表达式 re模块基础

python基础学习笔记(十三)

Python自动化开发从浅入深-语言基础(正则表达式)