\\1是指匹配的前一个字符,+是个量词,大于等于一次,$1指代括号里的那个字符,所以意思是把字符串里的所有两个或两个以上的连续字符替换为一个
下面那个是想把所有点之间的数字格式化成xxx三位的格式。
第一步:str.replaceAll("(\\d+)", "00$1");只要是连续的数字,统统在前面挂俩零
第二步:str.replaceAll("0*(\\d{3})", "$1");*也是个量词,表示大于等于零次,所以这里实际有两种情况
a.当有若干个0在前面时,后面跟三位数字,或者讲实际位数超过三位,就果断把零干掉,保留后面的三位数字
b.当没有零时,就是说实际只有三位时,原分不动把这三位数字拿过来。 |