簡體   English   中英

正則表達式是什么?

[英]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()僅替換子字符串

  1. replaceAll是您要尋找的
  2. 如果要完全匹配,則在正則表達式末尾缺少最后一個\\“

如果您只想顯示3 *,那很容易,如果要對密碼中的每個字符顯示1 *,那會有點困難。

Msg = Regex.Replace(Msg, "\"Password\":\"[^\"]+?\"", "\"Password\":\"***\"")

您是否正在使用任何日志記錄庫,例如log4j或slf4j? 這些庫具有使用正則表達式“替換字符串”的功能。 您可以通過更改日志記錄配置文件來全局使用和應用此功能。 您仍然需要提出一個正則表達式,使用正則表達式構建器實用程序(例如http://myregexp.com/)來自己構建一個正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM