python正则表达式

1. python 正则表达式总结

1.1 字符串替换

  1. 去除字符串中所有\u开头数字或字母结尾的字符?
import re


s = r"\ue627\uf893e古力娜扎超话娜扎的最新海岛度假照,这白到发光的皮肤真是让人羡慕。肤白如雪,就是形容这样的小姐姐的?,"
s1 = re.sub(r"\\u.*[a-zA-Z0-9]", "", s) 
print(s1)

  1. 去除字符串中的?#~​​​​????等字符和\u开头字母或数字结尾的字符,保留逗号句号等分隔符
import re


s = r"\ue627\uf893e古力娜扎?#~超话娜扎的最新海岛度假照,这白到发光的皮肤真是让人羡慕。肤白如雪,​​​​??就是形容这样的??小姐姐的?,"
# 先去除字符串中的\u开始字母或数字结尾的字符,再在这个字符中找到所有的单词和分隔符,将分隔符用空字符连接起来。
s1 = "".join(re.findall("[\w,.,;;。?]", re.sub(r"\\u.*[a-zA-Z0-9]", "", s)))
print(s1)

  1. 获取div中的所有文本,除去div中的所有标签,但是保留标签中的内容,例如a标签中的内容,并且去除html中的 
import re 


s = """
<div class="c-abstract">
<span class=" newTimeFactor_before_abs m">2018年11月6日&nbsp;-&nbsp;</span>
<em>Python注释</em>基础 要用<em>Python</em>编写<em>注释</em>,只需将“#”放在您的<em>注释</em>内容之前: <em>Python</em>会忽略在#标记之后到<em>行尾</em>的所有内容,您可以在<em>代码</em>中的任何位置插入它们,...</div>
"""
s1 = "".join(re.findall("[\w,.;?,。?;]", re.sub(r"<.*?>|&nbsp;", "", s, re.M), re.M))
print(s1)

  1. 提取字符串中的a标签的文本及href,去除title中的特殊字符
import re

div = """
<div class="WB_text W_f14" node-type="feed_list_content">
                                                        <a suda-uatrack="key=tblog_card&amp;value=click_title:4400799742323026:1022-topic:1022%3A10080898347e56cba69497dec5d9bab5a9fc11" title="哈士奇超话" href="http://huati.weibo.com/31436" alt="http://huati.weibo.com/31436" action-type="feed_list_url" target="_blank" rel="noopener noreferrer"><i class="W_ficon ficon_supertopic"></i>哈士奇超话</a><a target="_blank" render="ext" suda-uatrack="key=topic_click&amp;value=click_topic" class="a_topic" extra-data="type=topic" href="//s.weibo.com/weibo?q=%23%E9%93%B2%E5%B1%8E%E5%AE%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB%23&amp;from=default">#铲屎官的自我修养#</a>二哈:我腿卡住了,快来救救我! <a suda-uatrack="key=tblog_card&amp;value=click_title:4400799742323026:1034-video:1034%3A4400671144010834:home:6042105162:4400799742323026:6042105162" title="二哈哈哈哈呵的微博视频" href="http://t.cn/AiYxlN1G" alt="http://t.cn/AiYxlN1G" action-type="feed_list_url" target="_blank" rel="noopener noreferrer"><i class="W_ficon ficon_cd_video">L</i>二哈哈哈哈呵的微博视频</a> ​​​​                            </div>
"""

# 获取所有的a标签
a_list = re.findall("<a.*?>.*?</a>", div, re.M)
# 定义数据列表
url_list = list()

for a in a_list:
	# 去除title中的特殊字符
    title = "".join(re.findall("[\w,.;?,。?;]", re.sub(r"<.*?>|&nbsp;", "", a, re.M), re.M))
    # 提取a标签中的 href属性
    href = re.findall('<a.*?href="(.*?)".*?>', a, re.M)[0]
    # 将数据以字典形式保存,并将数据加入数据列表中
    url_list.append({"title": title, "href": href})

print(url_list)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值