如何定义正则表达式以掩盖所有包含“密码”的单词

问题描述

我使用logback(logback-gelf)登录我的spring boot应用程序。它具有配置xml文件,我尝试编写正则表达式以屏蔽所有包含“密码”的单词。

配置文件中。我这样写:

%replace(%msg){'(?i)(password"\S+?")(\S+?)(".+)','$1****$3'}  //I use (?i) for case insensitiveness

它有效,但仅适用于日志中的一个密码。例如,如果我的日志是这样的:

{"oldPassword":"123456","password":"654321"}

它将转换为:

{"oldPassword":"****","password":"654321"}

我想屏蔽所有包含密码的单词。

我该怎么做?

通过这种方式可以在在线正则表达式测试器上运行,但不能在logback-spring上运行

online regex example

解决方法

(?i)(password"\S+?")(\S+?)"

这对我有用。

感谢@JvdV的帮助。