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 rers = re.match("51cto", "51cto.com")print(rs.group())

运行结果:

51cto

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

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

import rers = 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)

运行结果:

a1abcNone

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

import rers = 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())

运行结果:

Nonea

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

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

运行结果:

12345671234567

(三)边界表示
(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基础语法 - 正则表达式

评论关闭