正则表达式是一种用来匹配字符串,用描述性的语言给字符串定义一个规则,凡是符合规则的字符串,我们就认为匹配,否则不合法。
一.基本模式
字面模式:字面长量,代表其本身。
. 匹配任意字符
\w 匹配单个字母 \W 除了匹配非字母,数字,下划线
\d 匹配单个数字 \D 除了单个数字
\s 匹配单个空格 \S 除了单个空格
\ 转义字符
二. 正则表达式特殊字符出现次数
.* 代表任意字符
出现次数:
* 代表*前面的字符出现0次或者任意次
+ 代表+前面的字符出现1次或者任意次
? 代表?前面的字符出现0次或者1次;想要省略的字符后面添加?
出现次数精确表达式:
{m} 代表前一个字符出现m次
{m, } 代表前一个字符至少出现m次,>=m
{m,n} 代表前一个字符出现m到n次,
三.正则表达式特殊符号
四。正则表达式表示边界
^ 以什么开头 $ 以什么结尾
五.re模块,一个完整的正则表达式使用
findall函数
math函数
检查是否匹配到内容
六. 正则表达式的高级用法
1.search :找到符合条件的第一个并返回
2,findall:从左往右一直匹配到完,列表形式返回匹配结果
3.sub:对于符合正则内容的进行替换
4.split:指定多个分割符进行分割
七. 正则表达式的分组
1. / :或者之意,只要满足/左右两边任意一方即可;
2. (.*): findall方法,只会显示()里面的内容
3. \num :引用分组的第num个匹配到的字符串
如果我们将html后面符号改动<h1></h2>,在html语法里面它将是错误,而我们的查找不会报错
所以我们需要将规则定义前后两个<>里面的内容进行对应
当<>里面不对应时将不会返回任何值
4. (?p)给分组起别名,(?p=name)引用分组的别名