1.正则表达式
- 什么是正则表达式
正则表达式是字符串匹配工具,他是问了在某些需求下可以更方便、更快速的处理字符串 - 怎么使用正则处理字符串
python通过提供re模块来支持正则表达式
re.fullmatch(正则表达式,字符串) -让正则表达式和字符串进行完全匹配,返回匹配结果,如果匹配不成功,返回None - 怎么写正则表达式
python中正则表达式是放在字符串中,并且这个字符串一般会在最前面加r/
r/’正则‘ - 正则语法
1)普通字符 -代表字符本身
2). -匹配任意字符
3)\w -匹配一个字母数字或者下划线
4)\s -匹配一个空白字符
空白字符包括:空格、回车、制表符
5)\d -匹配一个数字字符
6)\b -检测单侧边界
单词边界:所有能够标志一个单词结束的符号都是单词边界,例如:空格、换行、标点符号
7)^ -检测是否是字符串开头
8)$ -检测是否是字符串结尾
9)\大写字母 -对‘\小写字母’功能的否定
10)[字符集] -匹配中括号中任意一个字符
[字符1-字符2] -匹配编码值在字符1到字符2的任意一个字符
[^字符集] -加^表示匹配除了该字符集字符的任意一个字符都可以
[^abc] -匹配除了abc以外的任意一个字符
11)转义符号\ -将正则中有特殊意义或者特殊功能的符号,表示符号本身 - 匹配次数
1)* -匹配0次或者多次
r'a*bc' 表示匹配一个字符串,由0个或者多个a+bc
2)+ -匹配一次或者多次
3){N} -匹配N次,{3}匹配三次
{M,N} -匹配M-N次{3,5}匹配3次或者4次,或者5次
{M,} -匹配至少M次
{,N} -最多N次
4)? -代表匹配0-1次
匹配次数不确定的时候尽可能多的匹配是贪婪匹配
非贪婪:尽可能少的匹配。在贪婪匹配后面加? - 分支/选择
要求用户名全是数字或者全部都是字母
正则1 |正则2 -先用正则1去匹配,如果匹配成功就成功,匹配不成功就用正则2去匹配 - 分组()
将小括号里面的内容当做整体操作 - 完全匹配:让字符串长度和内容与正则表达式完全一样
- re.fullmatch(正则表达式,字符串) -匹配 成功返回匹配对象,匹配失败返回None
1)获取匹配到内容在原字符串的位置
对象.span()
2)获取匹配到的值
对象.group()
3)获取原字符串
对象.string - 匹配字符串开头
re.match(正则表达式,字符串) -判断字符串开头是否与正则表达式匹配。 - re.search(正则表达式,字符串) -在字符串中查找是否有正则表达式匹配的子串,如果有就返回第一个匹配结果,如果没有,返回None
- re.findall(正则表达式,字符串) -获取字符串中所有满足正则表达式的子串,以列表的形式返回
注意:
1)没有分组 -整个正则表达式匹配到的结果作为列表元素(元素是字符串)
2)只有一个分组 -这个分组匹配到的结果作为列表元素
3)多个分组 -将元祖作为列表元素,每个分组匹配到的结果作为元祖的元素 - re.finditer(正则表达式,字符串) -获取字符串中所有能和正则表达式匹配的子串的匹配结果,返回的是一个迭代器,迭代器中的元素是匹配对象
- re.split(正则表达式,字符串) -将字符串按照满足正则表达式的子串进行切割
- re.sub(正则表达式,新字符串,字符串)-将字符串中满足正则表达式的子串替换成新字符串
- re.fullmatch(正则表达式,字符串) -匹配 成功返回匹配对象,匹配失败返回None