我需要一个正则表达式模式,它可以掩盖java中字符串中的备用2个字符..但是输入字符串我们无法预测。例如
String pattern = "abcdefgh";
OutPut: "ab\*\*ef\*\*"
因此表达式应该是常见的。不是特定于上面的字符串
答案 0 :(得分: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*"));