簡體   English   中英

Java如何按預期使用正則表達式掩碼數字

[英]Java how to using Regex mask numberic as I expected

建議我有以下兩個值:

       123456789
       123456789111

String.replaceAll可以跟隨嗎?

       123456789           ->    XXXXXX789
       123456789111        ->    XXXXXXXXX111

為掩碼的最后三個數字,但將其他字符替換為X? 請注意樣本中X的數量。

提前致謝。

是的,replaceAll函數將完成此工作。

String s1 = "123456789";
String s2 = "123456789111";
System.out.println(s1.replaceAll("\\d(?=\\d{3})", "X"));
System.out.println(s2.replaceAll("\\d(?=\\d{3})", "X"));

輸出:

XXXXXX789
XXXXXXXXX111

說明:

  • \\\\d(?=\\\\d{3})僅在后跟三位數字時匹配。 因此,最后三位數字失敗。 最后,所有匹配的數字都用字母X代替
.(?!.{0,2}$)

試試看。用X替換。標記mg 。請參閱演示。

http://regex101.com/r/sK8oK9/2

是的你可以:

public static void main(String[] args) {
    String s1 = "123456789";
    String s2 = "123456789111";
    String regex = "\\d(?=\\d{3})"; // each digit followed by exactly 3 digits should be replaced by X
    System.out.println(s1.replaceAll(regex, "X"));
    System.out.println(s2.replaceAll(regex, "X"));

}

O / P:

XXXXXX789
XXXXXXXXX111

暫無
暫無

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

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