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>"]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM