[英]what is the regular expression for this?
在將密碼顯示在日志文件中之前,我需要屏蔽該密碼。
密碼的格式為“ password”:“ pswd123”。 它僅是字母數字。 屏蔽后,將是“密碼”:“ * ”
在我的自定義Pattern類中,我具有以下reg表達式,但尚未被使用。 任何想法應該如何? 謝謝
@Override
public String format(LoggingEvent event) {
String msg = super.format(event);
// regexp not being picked up
msg = msg.replace("\"password\":\"[^\"]*", "password:\"***\"");
return msg;
}
String.replace()
采用CharSequence
而不是正則表達式。 您可能正在尋找replaceAll()
或replaceFirst()
。
使用.replaceFirst()
.replace()
僅替換子字符串
如果您只想顯示3 *,那很容易,如果要對密碼中的每個字符顯示1 *,那會有點困難。
Msg = Regex.Replace(Msg, "\"Password\":\"[^\"]+?\"", "\"Password\":\"***\"")
您是否正在使用任何日志記錄庫,例如log4j或slf4j? 這些庫具有使用正則表達式“替換字符串”的功能。 您可以通過更改日志記錄配置文件來全局使用和應用此功能。 您仍然需要提出一個正則表達式,使用正則表達式構建器實用程序(例如http://myregexp.com/)來自己構建一個正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.