Python字符串过滤器:正则表达式Regular Expression
一、什么是正则表达式
正则表达式是按照正确的既定规则、一种全语言类型Python、Java、JavaScript、PHP通用的表达式。
用途:
(1)根据规则抓取数据:配合爬虫、根据规则在文本中提取数据
(2)根据规则验证数据:验证手机号、验证邮箱、验证身份证
二、如何在Python中使用正则表达式
在Python中正则表达式的1个模块+2个方法需要学习
re模块 re=regular expression
import re
re方法一:根据规则查找/提取内容
re.findall(查找规则,匹配内容)
返回结构化数据,两个参数,形式参数为pattern(规律)string(需要查找/匹配的字符串)
re方法二:根据规则匹配/验证内容
re.match(匹配规则,匹配内容)
返回布尔,两个参数,形式参数为pattern(规律)string(验证字符串)
三、正则表达式的规则
正则表达式普通字符:
(1)普通字符是我们常规认识的a-z A-Z 0-9中文以及标点符号
正则表达式特殊符号/通配符/元字符,常用特殊字符包含:
(1)直接规则字符:. + * ? \d \D \w \W \s \S ^
(2)辅助规则字符(){} []
这几个括弧不是数据类型
字符代表含义
| . | 匹配除了换行以外的任何一个字符 |
| + | 匹配前边子表达式规则字符任意次数(至少出现一次) |
| * | 匹配前边子表达式规则字符任意次数包含0次 |
| ? | 尽可能少匹配,禁止贪婪模式 |
| \d | 匹配一个数字 |
| \D | 匹配一个非数字 |
| \w | 匹配包括下划线的任何单词字符 |
| \W | 匹配任何非单词字符 |
| \s | 匹配任何空白字符 |
| \S | 匹配任何非空白字符 |
| ^ | 字符串开头匹配 |
| $ | 字符串结束匹配 |
| [] | 筛选条件 |
| () | 分组(作为一个整体) |
| {} | 出现次数 范围/固定 |
特别注意^符号与[]搭配使用代表"非" 如[^a],非a全取
举例:任务提起老师的姓名
import re
txt='''万门大学老师:宁夫
万门大学老师:正正
万门大学老师:陪陪'''
pattern=r":.*"
res=re.findall(pattern,txt)
print(res)
输出结果:
import re
txt='''万门大学老师:宁夫
万门大学老师:正正
万门大学老师:陪陪'''
pattern=r":(.*)"
res=re.findall(pattern,txt)
print(res)
输出结果:

举例:提取电话号码
import re
info='''mike,18391911111,39
lin,13932111111,40
danial,15932431115,45
frank,1A932431115,45'''
pattern=r"\d{11}"
result=re.findall(pattern,info)
print(result)