• Python学习笔模式匹配与正则表达式之用sub()方法替换字符串


    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      正则表达式不仅能找到文本模式,而且能够用新的文本替换掉这些模式。Regex对象的 sub()方法需要传入两个参数。

    第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式。sub()方法返回替换完成后的

    字符串。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    import re
    namesRegex = re.compile(r'Agent w+')#定义正则表达式
    #第一个参数是想要被替换为的内容,第二个参数是检查的文本
    print(namesRegex.sub('CENSORED', 'Agent Alice gave the secret documents to Agent Bob.'))
    

      运行结果:

      有时候,你需要使用匹配的文本本身,作为替换的一部分。在sub()的第一个参数中,可以输入1、2、3.....。表示“在替换中输入分组1、2、3.....”的文本。

      假如,假定想要隐去密探的姓名,只显示他们的姓名的第一个字母。要做到这一点,可以使用正则表达式Agent (w)w*,传入 r'1****'作为 sub()的第一个参数。

    字符串中的1 将由分组 1 匹配的文本所替代,也就是正则表达式的(w)分组。

      示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    import re
    #定义表示为Agent+空格,后面的所有字符串,一致到空格、换行、制表符为止,为分组1的内容的正则表达式
    agentNamesRegex = re.compile(r'Agent (w)w*')
    #sub()第一个参数为要替换的内容1表示为正则表达式的分组1
    mo = agentNamesRegex.sub(r'1****','Agent Alice told Agent Carol that Agent Eve knew Agent Bob was a double agent.')
    print(mo)
    

      运行结果:

  • 相关阅读:
    ureport2 学习
    odoo 对接ureport2
    云服务器挂载新的硬盘
    linux ubuntu搭建文件共享服务nfs
    大厂MongoDB面试题集锦 转发:https://mp.weixin.qq.com/s/ImOgbKY5lSyMzmicu8xbXA
    写Python爬虫遇到的一些坑 转载:https://mp.weixin.qq.com/s/kfxJ7EKFeunGcjvBr0l7ww
    Selenium 爬取淘宝商品 转载:https://mp.weixin.qq.com/s/7aul82HqxszH5jH9pSpZrA
    tst
    Istio
    2021牛客暑期多校训练营7 F-xay loves trees
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9588536.html
Copyright © 2020-2023  润新知