正则表达式
- re模块
- fullmatch(正则表达式,字符串)------判断字符串是否满足正则表达式描述的规则(完全匹配)
- python要加入转译字符要加入r防止转译 js加/正则表达式/防止转译 oc加"正则表达式"防止转译
-
正则表达式的语法内容
-
匹配类符号 约束字符串中位置上字符是什么
普通字符 大多数的字符是普通字符(表示符号本身的字符)
. 匹配任意一个字符
\d 匹配任意一个数字字符
\s 匹配任意一个空白字符(空格 \t \n)
\D 匹配非数字字符
\S 匹配任意一个非空白字符
[字符集] 匹配字符集中任意一个字符 [1-9] 匹配1到9
匹配任意一个中文[\u4e00-\u9fa5]
[^字符集] 匹配不在字符集中的任意字符
-
控制次数的符号
匹配类符号+控制符号的次数
* 其前面的字符出现0次或多次
+ 其前面的字符至少出现一次
? 其前面的字符有或者没有
{N} N次
{M,N} M-N次
{M,} 至少M次
{,N} 最多N次
-
贪婪模式和非贪婪模式(search findall find)
贪婪模式:多种匹配成功则以最大的匹配次数进行匹配
默认的贪婪模式:* + {M,N} {M,} {,N} 在后面加一个?变成非贪婪模式
findall() 找全部返回list 用()括起来时只会返回()里面的
-
分组()
重复匹配结果 在正则表达式中一部分用()表示一个分组,然后整体控制次数 \N表示重复前面第N个分组
将正则表达式的一部分括起来表示一个整体
-
分支
正则表达式1|正则表达式2|正则表达式3
-
检测类符号
检测符号所在的位置是否符合条件
\b 检测是否为单词边界(凡是将俩个单词区分开的对象)不影响字符串长度
^ 检测字符串开头
$ 检测字符串结尾
-
转译符号
在正则表达式中本身具备特殊功能或者特殊意义的符号前加\ 让其功能消失,变成普通符号
[] 也可以让独立存在的字符表示其自身的意义
-
re模块
import re re.fullmatch(正则表达式,字符串) re.match() 匹配字符串开头 re.seach(正则表达式,字符串) 在字符串中查找第一个符合正则表达式的子串 re.findall(正则表达式,字符串) 在字符串中查找所有的满足正则表达式的子串返回列表 re.finditer(正则表达式,字符串) 在字符串中查找所有的满足正则表达式的子串返回一个迭代器,迭代器中的元素时匹配对象 re.sub(正则表达式,字符串1,字符串2) 将字符串2中所有满足正则表达式的替换成字符串1 re.split(正则表达式,字符串) 将字符串中所有满足正则表达式的子串进行切割
-