本节知识大纲:
![3d69ccd1a775599db5060cce013b76be.png](https://i-blog.csdnimg.cn/blog_migrate/e4a0a66ecc5ffce7efd05959f36444e4.jpeg)
本节知识大纲
一、正则表达式介绍
正则表达式是什么?正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。如果我们对字符串有要求,我们就可以通过正则表达式把它表示出来,我们可以用正则表达式去匹配符合规则的字符串;正则表达式的处理对象是字符串,主要应用正则表达式的操作有:
- 验证
- 查找
- 替换
1. 正则表达式的匹配流程:
![9c414231c6b270b145884a574aa6e396.png](https://i-blog.csdnimg.cn/blog_migrate/31c6334ead68de0bdab7906b685a4b23.jpeg)
正则表达式的匹配流程
2. 正则表达式的应用流程
match()是用于校验的函数
案例01:
输入一个三位数,通过正则表达式输入的是否满足要求?
import reinput_number = input("请输入一个三位数:")match = re.match("^d{3}$",input_number)if match is None: print("不符合要求")else: print("符合要求")
案例02:
判断输入的手机号码是否有效,要求:号码位数是11位;第一位是数字1;第二位是数字345789;后面是0-9均可
# 步骤一:通过引擎编译出对象import repattern = re.compile(R"[1][345789]d{9}") # 编译出pattern对象input_mobile = input("请输入手机号码:")# 步骤二:对输入的内容进行匹配# print(pattern.match(input_mobile))if pattern.match(input_mobile): print("输入的手机号有效!")else: print("输入的手机号无效!")
3.正则表达式的基本语法
![dddf456e4987238fafba8781da63b7b2.png](https://i-blog.csdnimg.cn/blog_migrate/24f1c49780e0c7b0f3c6ab2867c40b33.jpeg)
正则表达式基本语法
二、预定义字符
如果每次都通过代码来验证正则表达式是否正确效率有点低,我们可以通过在线工具来校验我们的正则表达式是否正确,比如oschina的在线正则表达式测试工具;当然在Windows系统下可以使用RegexBuddy工具进行检测。
普通字符:字母、数字、下划线以及没有特殊意义的符号,都是普通字符。
元字符:这里主要有11个构成正则表达式元字符
. | ^ $ * + ? [] {} ()
1. 通配字符
. 是一个能匹配除以外任何字符的通用匹配符,例如,我们想匹配以a开头的,后面跟3个任意字符的正则表达式可以这样写:
re.match("^a...","avfs")
另外三个连续的通配符可以写成{3}像这样:
re.match("^a.{3}","avfs")
这里也可以使用findall()方法,能返回待匹配字符串中所有与正则表达式相匹配的字符串
print(re.findall("a.{3}","avfssssadddadddaef")) # 把匹