zoukankan      html  css  js  c++  java
  • 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>"]
  • 相关阅读:
    shell脚本修改Linux系统中所有IP样例
    关闭并卸载数据库脚本
    查询编译不通过的存储过程并重新编译
    SQL函数造数据样例(一)
    类型转换和多态
    Java学习笔记(三)
    Java学习笔记二()
    Java学习笔记(一)
    1.2.零宽断言
    1.3.匹配小括号的字符(可能有小括号在一行的,也有多行的)
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/9079476.html
Copyright © 2011-2022 走看看