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>"]
原文地址:https://www.cnblogs.com/mydesky2012/p/9079476.html