如何定义正则表达式以屏蔽所有包含 "password" 的单词

How to define regex for masking all words which contain "password"

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

在配置文件中。我这样写:

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

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

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

将其转换为:

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

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

我该怎么做?

顺便说一句,它可以在在线正则表达式测试器上运行,但不能在 logback 上运行-spring

online regex example

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

这对我有用。

感谢@JvdV 的帮助。