day23 正则,re模块
一、 简谈正则表达式
元字符
. 除了换行符外任意字符。
\w 数字、字母、下划线
\s 空白符
\b 单词的末尾
\d 数字
\n 匹配换行符
\t 匹配制表符
\W 除了数字。 字母 下划线
\D 除了数字
\S 除了空白符
^ 开头
$ 结尾
[…] 字符组
[^…] 除了字符组内的元素外
()匹配括号内的表达式,也表示一个组
量词 限定符
* {0,n}
+ {1,n}
? {0,1}
{p} p次
{p,} p次或更多次
{p,q} 从p到q次
贪婪匹配和惰性匹配
*,+,{},都属于贪婪——即尽可能多的匹配
在使⽤用.*后⾯面如果加了? 则是尽可能的少匹配. 表⽰惰性匹配
正则中转义 在前加\ 如 \\n 表示 \n
二、 re模块
findall()获取到匹配的所有内容 返回list 在pycharm中可能因()优先权,而得不到所要的结果,可用(?:取消优先权)
finditer()匹配到所有内容。 返回迭代器
search() 搜索。查到了就返回 查不到返回None
match() 匹配. 从头开始匹配 匹配不到就报错
split()切割,可多个,在pycharm中用()包裹表达式可保留切割位置
sub()替换 同理() 可显示替换多少次
compile() 表达式预加载
(?P<name>正则) 给表达式起名 可调用查看