正则表达式
0x001导入正则模块
无需使用pip安装,直接 import re
0x002主要方法
01
findall(表达式, 处理字符串, 模式)
特点:
会匹配出所有符合的项
模式:
①re.I 忽略大小写匹配
②re.S如果用.匹配可匹配所有字符包括换行符
①模式
②模式
02
re.sub(匹配表达式,替换的内容,操作的字符串,次数)
特点:
1)替换的内容可以是一个函数也就是可以通过函数来处理匹配到的字符串
2)如果替换内容是函数 ,传入函数的参数必须用:参数.group()取出值才能用
替换内容为字符串时
替换内容为函数时
03
re.search(表达式, 处理字符串)
re.match(表达式, 处理字符串)
特点:
1)只会匹配一次
2)返回值是对象,并不是具体值
使用该方法返回的对象如何取出其中的值?
1)用.group(0)取出匹配到的整个字符串
2)用.group(1)取出匹配的第一个元组数据
3)用.groups()返回匹配的所有元组数据内容 不包括group(0)
4)用返回值.span()可以返回匹配的字符串所在位置
.group(0)方法
.group(1)方法
.groups()方法
0x003表达式及示例
01
[ ] 其中的每个字符为“或“的关系
02
{x} 表示匹配x个;{3,6}表示3-6个
需要注意的是,python默认正则匹配为贪婪模式,也就是{x,y}会优先匹配y个,相对的,非贪婪模式表示为{x,y}?,这时只要匹配到x个就会返回结果。
贪婪模式
非贪婪模式
04
* 匹配0次或者无限多次
05
+ 匹配1次或者无限多次
06
? 匹配0次或者1次
07
^表示从字符串开头匹配
$表示从字符串末尾匹配
这种表达常用在用户名/手机号合法性校验中,以确保字符串为完整匹配。
例如:手机号校验 ^1[3-9][0-9]{9}$