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基础语法 - 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章