python正则表达式sub替换字符串_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.‘))

运行结果:

19f84381669eea88e12e9df13774e9b4.png

有时候,你需要使用匹配的文本本身,作为替换的一部分。在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)

运行结果:

7fd11431191b6baee0967cb0668b8e9d.png

原文:https://www.cnblogs.com/lirongyang/p/9588536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值