[英]Regex for masking certain pattern in a String
有人可以幫我形成一個正則表達式來替換 Java 中的以下模式嗎?
"user=abc&password=abc123&token=xyz"
嘗試使用inputString.replaceAll(key + "=" + "([^\\\\s]+)", key + "=####&")
,但結果是"user=####&"
但是,我正在尋找替換它匹配模式"key=value&"
所有事件。 所以最終結果應該是user=#####&password=#####&token=xyz
星號沒有打印出來,所以用# 替換這篇文章。
提前致謝!
使用基於流的方法,我們可以拆分&
上的輸入,然后檢查每個查詢字符串組件的user
或password
鍵。 在這種情況下,我們然后用#####
掩碼替換這些值。 最后,連接回流末尾的單個查詢字符串。
String input = "user=abc&password=abc123&token=xyz";
String output = Arrays.stream(input.split("&"))
.map(x -> {
String[] parts = x.split("=");
if ("user".equals(parts[0]) || "password".equals(parts[0])) {
parts[1] = "#####";
}
return String.join("=", parts);
})
.collect(Collectors.joining("&"));
System.out.println(input); // user=abc&password=abc123&token=xyz
System.out.println(output); // user=#####&password=#####&token=xyz
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.