使用正则表达式替换文本内容 - 极悦
首页 课程 师资 教程 报名

使用正则表达式替换文本内容

  • 2021-08-12 13:01:58
  • 1211次 极悦

背景:日志中有打印出明文密码,需要将密码不分替换为*

关键语句就一条:

re.sub(r'--password .? ', '--password * ', line)

用途是,找到--password关键字,然后替换后面两个空格之间的内容为

import re
def log_mask(self):
    raw_file = self.LOG_PATH + self.logfile_name + '_tmp.log'
    mask_file = self.LOG_PATH + self.logfile_name + '.log'
    with open(raw_file, "r", encoding="utf-8") as f1, open(mask_file, "w", encoding="utf-8") as f2:
       for line in f1:
           f2.write(re.sub(r'--password .*? ', '--password * ', line))
    os.remove(raw_file)

如果打算用相同的模式执行重复替换,可以考虑先将模式编译以获得更好的性能。

实例:

import re
text='今天是:11/28/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')
print(datepat.sub(r'\3-\1-\2',text))
print(text)

实例2

把大于两个以上的换行替换为两个换行

pat = re.compile(r'\n\n+')
result = pat.sub('\n\n', result)

以上就是极悦小编介绍的"什么是消息队列",希望对大家有帮助,想了解更多可查看Java极悦在线学习。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交