2016-09-26 62 views
0

我需要一個正則表達式模式,它可以掩蓋在java中的字符串中的替代2字符。但是我們無法預測的輸入字符串。例如在java中使用正則表達式的字符串中的替代字符

String pattern = "abcdefgh"; 
OutPut: "ab\*\*ef\*\*" 

所以表達應該是通用的。不特定針對上面的字符串

回答

1

這應該爲你工作:

public static void main(String[] args) { 
    String pattern = "abcdefghijklmnop"; 
    System.out.println(pattern.replaceAll("(\\w{2})(\\w{2})", "$1**")); 
} 

O/P:

ab**ef**ij**mn** 

replaceAll("(\\w{2})(\\w{2})", "$1**")) ==>替換2組,每組2個字符爲「2個字符,* *」。

請注意,如果您有奇數字符,最後一個字符不會被屏蔽。這應該解決它==>System.out.println(pattern.replaceAll("(\\w{2})(\\w{2})", "$1**").replaceAll("(\\w{2})\\w$", "$1*"));

+0

非常感謝,但有一件事我發現,如果我給奇數的字符,如String ex =「1234567」;那麼出來將是12 ** 567你可以修改此爲12 ** 56 * – Jam

+0

@Jam - 檢查我的編輯 – TheLostMind

+0

@JAM - 請注意,在這裏使用'模式'和'匹配器'將是一個更好的解決方案:) – TheLostMind