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

python 字符串替换、正则查找替换的更多相关文章

  1. 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...

  2. Python 字符串操作(截取/替换/查找/分割)

    Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...

  3. Python - 字符串模板的安全替换(safe_substitute) 具体解释

    字符串模板的安全替换(safe_substitute) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27057339 ...

  4. python字符串截取、查找、分割

    Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...

  5. Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sS ...

  6. 黄聪:Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sS ...

  7. Sublime_正则查找替换

    在sublime编辑器中使用正则表达式对内容进行查找和替换: (1)Find——Replace... (2)出现下图界面 注意:点击左边第一个按钮,开启正则表达式功能. (3) (4)点击Replac ...

  8. lua中 string.find(查找获取字符串) string.gsub(查找替换字符串) string.sub(截取字符串)

    > aaa='/p/v2/api/winapi/adapter/lgj'> print(string.find(aaa, "^/.+/adapter/(.*)"))1 ...

  9. python字符串、正则-xdd

    1.分割字符串 str.split(sep,maxsplit) #(分隔符,分几次) 2.合并字符串 str2=string.join(iterable) #str2='@'.join(list1) ...

随机推荐

  1. Setting NLS_LANG Value for Oracle

    Introduction Many times, when you have an Oracle application and you have to support special charact ...

  2. 重谈react优势——react技术栈回顾

    react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...

  3. java多线程之AtomicLong与LongAdder

    AtomicLong简要介绍 AtomicLong是作用是对长整形进行原子操作,显而易见,在java1.8中新加入了一个新的原子类LongAdder,该类也可以保证Long类型操作的原子性,相对于At ...

  4. Excel坐标自动在AutoCad绘图_5

    众所周知,Excel对数据处理的功能非常强大,它可以进行数据处理.统计分析已经辅助决策的操作,该软件已经渗透到各个领域.作为一个测绘人,GISer, 也经常利用excel完成一些测量表格的自动化计算, ...

  5. [20180603]Python读写csv

    原文:https://docs.python.org/3/library/csv.html 进入python官网后,选择document,然后选择library reference. 读取: impo ...

  6. GO map

    map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用. map定义 语法:map[KeyType]ValueType KeyType:表示键的类型. V ...

  7. centos7安装配置jdk

    ① java -version 可以查看系统自带的openjdk版本信息 ② rpm -qa | grep java  查看系统自带的Java文件 ③ 卸载文件(noarch文件可以不用删除) -- ...

  8. Goland开发工具安装教程

    开发工具: 文本类的编辑器:记事本,notepad,sublime text,atom... 通过命令执行程序 IED:集成开发环境(integrated development environmen ...

  9. 用Flow编写更好的js代码

    关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...

  10. 利用Android-FingerprintManager类实现指纹识别

    安卓指纹识别 利用FingerprintManager主类进行指纹识别. Github项目地址 在安卓6.0中新增了API,FingerprintManager类,它是Google提供的帮助访问指纹硬 ...