python html移除a,img等标签正则处理
正则匹配所有A标签
//分组1和分组2即为href和value
<a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a>
解释:
- <a\b #匹配a标签的开始
- [^>]+ #匹配a标签中href之前的内容
- \bhref=“([^”]*)" #匹配href的值,并将匹配内容捕获到分组1当中
- [^>]*> #匹配a标签中href之后的内容
- ([\s\S]*?) #匹配a标签的value,并捕获到分组2当中,?表示懒惰匹配
- #匹配a标签的结束
对应python里面的处理
def replaceA(self,txt):
print('-----')
print(">>1 "+txt.group(0))#匹配到的a标签
print(">>2 "+txt.group(1))#href
print(">>3 "+txt.group(2))#value
return ''
#content为html内容
a3=r'<a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a>'
content=re.sub(a3, replaceA, content,flags=re.I|re.M|re.S)
要注意的是 group 组里面的项是根据正则表达式里分组得来的,同理python要替换其他标签可自行改换正则表达式