本帖最后由 wnmmp 于 2014-8-1 00:24 编辑
String ip = "10.10.10.10 192.168.1.200 3.3.3.3 127.0.0.108";
ip = ip.replaceAll("(\\d+)", "00$1");
ip = ip.replaceAll("0*(\\d{3})", "$1");
String[] ips = ip.split(" +");
Arrays.sort(ips);
for(String x : ips){
System.out.println(x.replaceAll("0*(\\d+)", "$1"));
}
如题,在将排完序的IP还原格式时用的正则表达式"0*(\\d+)",一直没想通,前面"0*"代表任意个0,后面"\\d+"代表一个或多个数字,那是不是有多个组合呢?比如前面代表1个0,后面代表2个0,或者前面代表2个0,后面代表1个0,但为什么"127.000.000.108"中的"000"没有转成"00",而是转成了"0"?
|
|