String replaceAll

it2024-10-05  41

String value = "abcd12345678910"; value.replaceAll("(\\d{3})(\\d{4})","$1****"); 输出abcd123****8910 \\d{3}为第一部分,d代表数字,所以前三个数字替换成$1, 第二个参数的$1代表第一部分,所以前三位123没有变,或者说是变成了他自己 第二部分的四个数字 ,即4567 变成了右边的**** 剩下的不做替换,拼接在了后面

预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) /d 数字:[0-9] /D 非数字: [^0-9] /s 空白字符:[ /t/n/x0B/f/r] /S 非空白字符:[^/s] /w 单词字符:[a-zA-Z_0-9] /W 非单词字符:[^/w]

value.replaceAll("(\\w{3})(\\d{3})(\\d{4})(\\d{4})","HHHH$2****$4"); 输出aHHHH123****8910; \\w{3} w代表单词字符,所以是最右边的三位单词字符替换成HHHH,即bcd换成了HHHH \\d{3} d代表数字,所以是前三位数字,123 第一个参数的第二部分 $2 替换自己本身,即123 \\d{4} 第三部分 替换成**** \\d{4} 第四部分 替换自己

replace不支持正则表达式 正则表达式: https://blog.csdn.net/demon7552003/article/details/94884761

最新回复(0)