python正则匹配html标签_Python正则获取、过滤或者替换HTML标签的方法

本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下

python正则表达式关键内容:

python正则表达式转义符:

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

常用的python正则表达式限定符代码/语法说明:

*重复零次或更多次

+重复一次或更多次

?重复零次或一次

{n}重复n次

{n,}重复n次或更多次

{n,m}重复n到m次

关于python正则表达式命名组:

命名组:(?P

.....)

这篇文章里面还提到了界定( 问号开头,前向则有个'

前向界定 (?<=…)

后向界定 (?=…)

前向非界定 (?')

print p.sub("", html)

Python通过正则表达式取html中温度信息代码示例:

#!/usr/bin/env python

#-*- coding: utf8 -*-

import re

html = """

14℃

"""

if __name__ == '__main__':

p = re.compile(']+>')

print p.sub("", html)

2、Python通过正则表达式去除(过滤)HTML标签示例代码:

# -*- coding: utf-8-*-

import re

##过滤HTML中的标签

#将HTML中标签等信息去掉

#@param htmlstr HTML字符串.

def filter_tags(htmlstr):

#先过滤CDATA

re_cdata=re.compile('//]*//\]\]>',re.I) #匹配CDATA

re_script=re.compile(']*>[^',re.I)#Script

re_style=re.compile(']*>[^',re.I)#style

re_br=re.compile('

')#处理换行

re_h=re.compile(']*>')#HTML标签

re_comment=re.compile('

')#HTML注释

s=re_cdata.sub('',htmlstr)#去掉CDATA

s=re_script.sub('',s) #去掉SCRIPT

s=re_style.sub('',s)#去掉style

s=re_br.sub('\n',s)#将br转换为换行

s=re_h.sub('',s) #去掉HTML 标签

s=re_comment.sub('',s)#去掉HTML注释

#去掉多余的空行

blank_line=re.compile('\n+')

s=blank_line.sub('\n',s)

s=replaceCharEntity(s)#替换实体

return s

##替换常用HTML字符实体.

#使用正常的字符替换HTML中特殊的字符实体.

#你可以添加新的实体字符到CHAR_ENTITIES中,处理更多HTML字符实体.

#@param htmlstr HTML字符串.

def replaceCharEntity(htmlstr):

CHAR_ENTITIES={'nbsp':' ','160':' ',

'lt':'

'gt':'>','62':'>',

'amp':'&','38':'&',

'quot':'"','34':'"',}

re_charEntity=re.compile(r'?(?P

\w+);')

sz=re_charEntity.search(htmlstr)

while sz:

entity=sz.group()#entity全称,如>

key=sz.group('name')#去除&;后entity,如>为gt

try:

htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1)

sz=re_charEntity.search(htmlstr)

except KeyError:

#以空串代替

htmlstr=re_charEntity.sub('',htmlstr,1)

sz=re_charEntity.search(htmlstr)

return htmlstr

def repalce(s,re_exp,repl_string):

return re_exp.sub(repl_string,s)

if __name__=='__main__':

s=file('169it.com_index.htm').read()

news=filter_tags(s)

print news

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海选女主角

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40591 Accepted Submission(s): 18214 Problem Descriptionpotato老师尽管非常喜欢教书&#xff0c;可是迫于生活压力。不得不想办法在业余时间挣点外快以养家糊…

python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...

相关库安装指导&#xff1a;这里我们需要 opencv_python&#xff0c;numpy&#xff0c;matplotlib库&#xff0c;另外我用的是python3.6.1版本。一般库大家都是用pip install命令安装的&#xff0c;不过不知道为啥这里的opencv_python库总是抽风&#xff0c;就是安装不了(起码我…

最大联通子数组的和

最大联通子数组的和 在几次“迭代”开发数组的项目之后老师又布置了这个“联通数组”的任务&#xff0c;当然&#xff0c;此次任务依旧是“结对编程”&#xff0c;要求如下&#xff1a; 1、题目&#xff1a;返回一个二维数整数组中最大联通子数组的和&#xff1b; 2、数组中有正…

曲线 线性回归_GRAPHPAD作图技巧(二)--拟合曲线

计算药物半抑制浓度IC50的拟合曲线图的做法&#xff1a;第一步&#xff1a;使用的版本是Graphpad Prism 5&#xff0c;打开软件后&#xff0c;选择XY作图方式&#xff1a;第二步&#xff1a;将实验所得的数据填写入图表中&#xff0c;注意x轴写入的是log[药物]&#xff0c;比如…

VBA之文件筛选

在工作中&#xff0c;经常会碰到从一堆腐朽的source中按照一个列表去筛选出来现在还要用的source文件。 这个如果用vba来实现的话&#xff0c;会节省大量的时间&#xff0c;而且不会出错。 前提说明&#xff1a; 将想要复制的文件名列表放在第一sheet的第一列&#xff0c;然后执…

2 引入失败_苦等2年!总投资2800万!镇江首个民国风商场,来了!

超级重磅&#xff01;就在近日&#xff01;镇江备受关注的首个民国风商场九如商业广场终于完工&#xff0c;招商马上启动项目施工2年&#xff0c;总投资约2800万计划引入酒店、商业、超市等目前老宴春酒楼已确定入驻01总投资2800万&#xff01;九如商业广场终于完工&#xff0c…

好用的cnn网络_DPCNN,究竟是多么牛逼的网络呢?

ACL2017年中&#xff0c;腾讯AI-lab提出了DeepPyramidConvolutionalNeuralNetworksforTextCategorization(DPCNN)。论文中提出了一种基于word-level级别的网络-DPCNN&#xff0c;由于上一篇文章介绍的TextCNN不能通过卷积获得文本的长距离依赖关系&#xff0c;而论文中DPCNN通过…

干货-iOS、mac开源项目及库,以后我也会持续更新。

昨晚在网上看的干货&#xff0c;直接分享给大家了&#xff0c;觉得有用的&#xff0c;直接fork吧。 https://github.com/Brances/TimLiu-iOS转载于:https://www.cnblogs.com/brance/p/5366843.html

二叉树前序中序后续线索树_二叉树的先序,中序,后序遍历以及线索二叉树的遍历...

二叉树的先序,中序,后序遍历以及线索二叉树的遍历(2008-05-04 17:52:49)标签&#xff1a;杂谈C二叉树的先序,中序,后序遍历以及线索二叉树的遍历头文件//*******************************************************************************//二叉树中的数据类型为ElemType//***…

EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体服务器,EasyPlayer手机播放器...

在不断进行EasyDarwin开源流媒体服务器的功能和性能完善的同时&#xff0c;我们也配套实现了目前在安防和移动互联网行业比较火热的移动端手机直播方案&#xff0c;主要就是我们的 EasyPusher直播推送项目 和 EasyPlayer播放器项目&#xff1b; 先大概对EasyPusher和EasyPlayer…

以下不属于时序逻辑电路的有_电工电子技术(不建议浪费时间学习的科目)

(声明&#xff1a;本资料来自网络&#xff0c;侵权请告知删除。文末有全套高清版资料下载链接&#xff0c;敬请下载学习)2019年7月在天津召开的土力学及岩土工程年会上&#xff0c;有一场青年教师的土力学讲课竞赛&#xff0c;由我作一些点评&#xff0c;其中关于土颗粒与土骨架…

VS2010 + QT 5 +open inventor 环境配置

本科毕业设计做的是 随钻测量的井眼轨迹和测井曲线的三维显示 要求的环境是 QT Open Inventor 在寒假开学前&#xff0c;打算将环境配置好&#xff0c;开学后再正式编码实现&#xff0c;可是。。。。环境也没弄好 在简单的了解了QT和open inventor后&#xff0c;决定用vs…

12伏的蓄电池有几个单格组成_蓄电池的结构和识别

蓄电池是储备电能的一种直流装置。蓄电池充电时将电能转变为化学能&#xff0c;使用时内部化学能转变为电能向外输送给用电设备。蓄电池充放电过程是一种完全可逆的化学反应&#xff0c;因为蓄电池的充电和放电过程&#xff0c;可以重复循环多次&#xff0c;所以又称为二次电池…

第四周JAVA作业

本次作业实现实现了大文件快速拷贝 package copy; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFile { /** * param args */ public static void main(String[] args) { long startTime System.currentT…

2-jQuery - AJAX load() 方法【进阶篇】

第一篇的AJAX load() 方法过于简单&#xff0c;补充一下&#xff0c;完整的。 格式 $(selector).load(URL,data,callback); 源码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><script type"text/javascript" src"…

前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸

前端 JS 获取 Image 图像 宽高 尺寸简介项目中用到获取图片的原始尺寸&#xff0c;然后适配宽高&#xff1b;网上的大部分前端解决方案&#xff0c;都是new Image()后,在onload事件中获取image的尺寸。在图片数量较多的时候&#xff0c;这样的获取效率实在是低下。所有就有了这…

InnoDB还是MyISAM?

两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。 我作为使用MySQL的用户角度出发&#xff0c;Innodb和MyISAM都是比较喜欢的&#xff0c;但是从我目前运维的数据库平台要达到需求&#xff1a;9…

mysql linux 安装_mysql-5.7.28 在Linux下的安装教程图解

2.上传tar包到服务器到 /usr/local/src3.卸载系统自动的Mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_644.检查是否有mysql存在rpm -qa|grep -i mysql5.查询是否还有mysql的目录find / -name mysql6.解压&#xff1a;tar -zxvf7.修改名称&…

有关软件工程的问题的分析和讨论及课后的作业3

个人电脑界面的演变。 1973年四月第一次操作是在施乐PARC Alto计算机完成。 该系统是第一个将现代图形用户界面中的所有元素结合起来的系统。 1981年6月施乐介绍了星&#xff0c;商业阿尔托的继任者。 显著特点&#xff1a;双点击图标&#xff0c;重叠窗口&#xff0c;对话框和…

mysql语句中模糊查询_关于sql、mysql语句的模糊查询分类与详解,包括基本用法和mapper.xml文件里插入写法...

欢迎猿类加qq:2318645572,共同学习进步实际例子&#xff1a;ssm框架:service业务层->dao层->mappers.xml->junit/test测试1:service业务层(package)Resourceprivate BooksDao bookDao;public List> Service(String serachtitle, String serachtype) {Map paramnew …