• python 字符串替换、正则查找替换


    import re
    if __name__ == "__main__":
        url = "  ###   deded<a href = 'xxx'>这是第一个链接</a><a href = 'xxx'>这是第二个链接</a> ###      "
    
        # 1-1 清除#,str.replace(old, new)
        newurl1 = url.replace("#", "")
        print("第一步 1: ", newurl1)
    
        # 1-2 清除#,正则替换
        p1 = re.compile(r"#+")
        newurl2 = p1.sub("", url)
        print("第一步 2: ", newurl2)
    
        # 2 去除首尾空格, str.strip()
        newurl = newurl2.strip()
        print("第二步: ", newurl)
    
        # 3 match 查找是否存在内链(从字符串开始处匹配,若匹配成功返回,若开头没有匹配上则返回None)
        p2 = re.compile(r"<a.*?>.*?</a>")
        match = p2.match(newurl)
        if match is not None:
            print("第三步: ", match.group())
    
        # 4 search 查找是否存在内链(可以从字符串任意位置开始匹配,查找整个字符串,直到成功匹配后返回,匹配失败返回None)
        search_match = p2.search(newurl)
        if search_match is not None:
            print("第四步: " + search_match.group())
    
        # 5 提取所有内链url中的文本,非贪婪匹配 + 分组捕获()
        p3 = re.compile(r"<a.*?>(.*?)</a>")
        textlist = p3.findall(newurl)
        print("第五步: ", textlist)
    
        # 6 提取所有内链url,非贪婪匹配
        p4 = re.compile(r"<a.*?/a>")
        linklist = p4.findall(newurl)
        print("第六步: ", linklist)

    输出结果:

    第一步 1:       deded<a href = 'xxx'>这是第一个链接</a><a href = 'xxx'>这是第二个链接</a>       
    第一步 2:       deded<a href = 'xxx'>这是第一个链接</a><a href = 'xxx'>这是第二个链接</a>       
    第二步:  deded<a href = 'xxx'>这是第一个链接</a><a href = 'xxx'>这是第二个链接</a>
    第四步: <a href = 'xxx'>这是第一个链接</a>
    第五步:  ['这是第一个链接', '这是第二个链接']
    第六步:  ["<a href = 'xxx'>这是第一个链接</a>", "<a href = 'xxx'>这是第二个链接</a>"]
  • 相关阅读:
    POJ-2096-Collecting Bugs(概率DP)
    2019ICPC南京网络赛总结
    LOJ-6285-数列分块入门9
    LOJ-6284-数列分块入门8
    LOJ-6283-数列分块7
    bzoj2049: [Sdoi2008]Cave 洞穴勘测
    bzoj1010: [HNOI2008]玩具装箱toy
    bzoj1597: [Usaco2008 Mar]土地购买
    bzoj1233: [Usaco2009Open]干草堆tower 单调队列优化dp
    bzoj2442&&codevs4654 单调队列优化dp
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/9079476.html
Copyright © 2020-2023  润新知