一、什么是正则表达式
正则表达式是按照正确的既定规则、一种全语言类型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)
标签:字符,匹配,Python,pattern,正则表达式,re,Regular,规则,Expression From: https://www.cnblogs.com/longlyseul/p/18153686