引入,为什么使用正则表达式?
字符串查找。find rfind, 局限,只能查找固定的,写死的
查找所有手机号,所有的邮箱
字符串替换
单字符匹配
\d :0-9 digit [0-9]
\w : 小写、大写、数字、下划线、中文 word [a-zA-Z0-9_]
\D : 除了 \d
\W :除了 \w
\s :所有的空白字符 space
\S :除了 \s
. : 除了 \n 其他所有
[] : [aeiou] 里面的任意一个
数量相关
{m} : 修饰前面的一个字符出现m次
{m,n} : 至少m次,最多n次 正则默认是贪婪的 匹配最多的
{m,} : 最少m次,没有最多,贪婪
{0,} : * 最少0次
{1,} : + 至少1次
{0,1} : ? 可有可无
常用
.* : 除了\n 其它很多字符都能匹配
.*? : 取消贪婪
.+ : 至少一个
.+? : 取消贪婪
re模块
pattern = re.compile()
re.match() pattern.match() : 从字符串开头开始匹配,匹配成功立即返回,返回一个对象,如果匹配失败,返回None
re.search() pattern.search() : 从字符串位置开始匹配,匹配成功立即返回,返回一个对象,如果匹配失败,返回None
返回的对象叫做ret
ret.group() : 得到匹配结果
ret.span() : 得到匹配结果的位置
re.findall() : 匹配字符串里面所有符合要求的,返回一个列表
子模式
()作用
1、视为一个整体 (ab){3}
2、是一个子模式
第一种写法
(?P<goudan>正则表达式) 使用 (?P=goudan)
第二种写法
(正则表达式) 使用 \1 \2 $1 $2
修饰符
re.I : 忽略大小写
re.S : 视为单行模式
re.M : 视为多行模式
正则替换
sub
正则表达式解析、re
最新推荐文章于 2024-01-15 00:14:15 发布