簡體   English   中英

使用正則表達式將字符串替換為 java 中的另一個字符串

[英]replace String with another in java using regular Expression

在 Java 中,我必須使用 RegEx 和 function 替換將字符串值包裝到另一個值。

示例 #1:什么將“ 123C5 ”(5 個字符)替換為“ ***** ”?

示例#2:什么將“ 12354CF5214 ”(11 個字符)替換為“ *******5214 ”? 僅替換前 7 個字符

目前,我正在使用這個 function 但我需要優化它:

public  String getMaskedValue(String value) {

    String maskedRes = "";
    if (value!=null && !value.isEmpty()) {
        maskedRes = value.trim();
        if (maskedRes.length() <= 5) {
            return maskedRes.replaceAll(value, "$1*");
        } else if (value.length() == 11) {
            return maskedRes.replace(value.substring(0, 7), "$1*");
        }
    }
    return maskedRes;
}

誰能幫幫我? 謝謝你的先進

您可以使用限制寬度的后視解決方案,例如

public static String getMaskedValue(String value) {
    return value.replaceAll("(?<=^.{0,6}).", "*");
}

在線查看 Java 演示

(?<=^.{0,6}). pattern 匹配字符串開頭前面有 0 到 6 個字符的任何字符(但換行符,帶有. )。

關於在 Java 正則表達式中使用lookbehinds的說明:

✽ Java 接受后視中的量詞,只要匹配字符串的長度在預定范圍內。 例如, (?<=cats?)是有效的,因為它只能匹配三個或四個字符的字符串。 同樣, (?<=A{1,10})是有效的。

暫無
暫無

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

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