正则表达式进阶
re模块
re.I 忽略大小写
re.L (LOCAL) 根据本地语言环境通过\w \W \b \B \s \S实现匹配。
re.M(MULTILINE) ^和$分别匹配目标字符串中行的起始和结尾,而不是严格匹配整个字符串的起始结尾
re.S .通常匹配单个字符,该标记“.”能够匹配全部字符
re.X 通过反斜线转义,否则所有空格加#都被忽略,除非在一个字符类中或者允许注释且提高可读性。
compile(pttern,flags=0)
使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象。推荐,但不是必须
match(pattern,string,flags=0)
尝试使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象,如果失败,就返回None。
findall()的使用
findall(pattern,string[,flags])
查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配列表。
search()的使用
search(pattern,string[,flags])
使用可选标记搜索字符串中第一次出现的正则表达式。如果匹配成功,则返回匹配对象,如果失败,则返回None。
content="hello world"
p=re.compile(r'word')
rest=p.search(content)
match 从开头匹配 search 一直查找匹配
group()和groups()的使用
group(num)返回整个匹配对象或者编号为num的特定子组
groups():返回一个包含所有匹配子组的元组(如果没有匹配成功,则返回一个空元组)
groupdict() 返回分组命名和值
split()正则分割
split(pattern,string,max=0)
根据正则表达式的模式分隔符,split函数将字符串分割为列表,然后返回成功匹配的列表,分割最大操作max次。
sub()正则替换
sub(pattern,repl,string,max=0)
使用repl替换string中每一个匹配的子串后返回替换的字符串,最多操作max次
图片地址
“<img.+?scr=\"(.+)\"*+?>”