在java中使用regualr表达式的掩码字符串
我需要一个使用正则表达式屏蔽字符串的代码。 需要屏蔽长度大于或等于4的数字在java中使用regualr表达式的掩码字符串,java,regex,Java,Regex,我需要一个使用正则表达式屏蔽字符串的代码。 需要屏蔽长度大于或等于4的数字 public class Mask{ String data="+918033667777,,,2,,,4937015106932345,,,1,3,,,,467298364729038,,24789438292,,7979,,,,,,,1,,1"; public static void main(String[] args){ data = data.replaceAll("(?<=\\D)
public class Mask{
String data="+918033667777,,,2,,,4937015106932345,,,1,3,,,,467298364729038,,24789438292,,7979,,,,,,,1,,1";
public static void main(String[] args){
data = data.replaceAll("(?<=\\D)\\d{4}(?=\\D)", "****").replaceAll("\\d{12}(?=\\d{4})", "************");
System.out.println(data);
}
}
公共类掩码{
字符串数据=“+91803366777、、2、、493701510693245、、1、3、、467298364729038、、24789438292、、7979、、、、、、、1、、1”;
公共静态void main(字符串[]args){
data=data.replaceAll(“(?尝试使用:
(?<=,)\d(?=\d{3,})|(?!\A)\G\d
输出:
+91803366777、、2、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
data
和dialSequence
是一样的吗?@NicholasRobinson是的,它们是一样的,但是+91803366777
也是一个长度超过4的数字。我得到了+*********************,,,,2,,,,,*********************,,,,,1,,,,,,,,,*********,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***我不会用*
屏蔽每个字符,但每个数字都有固定数量的*
@NicholasRobinson,甚至得到相同的输出。我不想屏蔽第一组数字。只需要在,(逗号)之后屏蔽。如何跳过这些数字(+91803366777)小小的简化Java版本:replaceAll(“(?@Pshemo但它也会匹配第一个数字,因为\D
也匹配+
@Pshemo我不想屏蔽第一组数字(+91803366777)。只需要在逗号(,)@Archana后面屏蔽数字在“屏蔽长度大于或等于4的数字”中没有任何关于,
(或者我错过了吗?。@Stribizev我补充道(?!\A)因为如果不是+
,它将匹配第一个数字,所以我假设OP不想匹配第一个数字
public class Test{
public static void main(String[] args){
String data="+918033667777,,,2,,,4937015106932345,,,1,3,,,,467298364729038,,24789438292,,7979,,,,,,,1,,1";
data = data.replaceAll("(?<=,)\\d(?=\\d{3,})|(?!\\A)\\G\\d", "*");
System.out.println(data);
}
}