初学正则表达式

用正则去除html字符串中的标签

先从某网页上获取的部分html字符串(含标签),目的是去除标签。

# 从某网页上获取的部分html字符串(含标签)
# 目的:去除标签
html_str = """<dd class='job_bt'>
     <h3 class="description">职位描述:</h3>
        <div class="job-detail">
        <p>岗位职责:</p>
<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>
<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>
<p>任职要求:</p>
<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>
<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>
<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>
<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>
<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>
<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>
<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>
<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>
<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>
<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>
<p>11、有教学经验,授课能力优秀者优先</p>
        </div>
    </dd>"""

分成两步:1、先匹配带有“/”的标签。如</>
为什么要这样做,因为<p></p>混在了同一个字符串里,难以提取出来。如下:‘<p>岗位职责:</p>

nums = re.findall(r'<.+>',html_str)
print(nums)
# 打印结果
["<dd class='job_bt'>", '<h3 class="description">职位描述:</h3>', '<div class="job-detail">', '<p>岗位职责:</p>', '<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>', '<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>', '<p>任职要求:</p>', '<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>', '<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>', '<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>', '<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>', '<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>', '<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>', '<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>', '<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>', '<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>', '<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>', '<p>11、有教学经验,授课能力优秀者优先</p>', '</div>', '</dd>']

2、再匹配其他的所有标签。

html = re.sub(r'<.+>','',num)

整体的代码如下:

import re

# 从某网页上获取的部分html字符串(含标签)
# 目的:去除标签
html = """<dd class='job_bt'>
     <h3 class="description">职位描述:</h3>
        <div class="job-detail">
        <p>岗位职责:</p>
<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>
<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>
<p>任职要求:</p>
<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>
<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>
<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>
<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>
<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>
<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>
<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>
<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>
<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>
<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>
<p>11、有教学经验,授课能力优秀者优先</p>
        </div>
    </dd>"""
    
# 匹配所有`</>` 标签,并替换为空(去除`</>`)    
nums = re.sub(r'</.+>','',html_str)
html = ''
# 遍历取去除</>标签后的html字符串
for i in nums:
    html += i
process_html = re.sub(r'<.+>','',html)
print(process_html)

输出结果:


        职位描述:
        
        岗位职责:
1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作
2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程
任职要求:
1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。
2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。
3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。
4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。
5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。
6、熟练使用Unix、Linux,能够进行shell编程。
7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。
8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。
9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。
10、有良好的沟通能力、表达能力、声音清晰自然。
11、有教学经验,授课能力优秀者优先
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值