正则表达式的经典案例
发布时间:2020-12-14 04:19:53 所属栏目:百科 来源:网络整理
导读:对四个ip地址进行排序。 public static void regex_test() {String ip="127.0.0.0 3.12.1.10 128.13.31.0 125.8.0.101";ip=ip.replaceAll("(d+)","00$1");ip=ip.replaceAll("0+(d{3})","$1");String []so=ip.split("s");TreeSetStringts=new TreeSetSt
对四个ip地址进行排序。 public static void regex_test() { String ip="127.0.0.0 3.12.1.10 128.13.31.0 125.8.0.101"; ip=ip.replaceAll("(d+)","00$1"); ip=ip.replaceAll("0+(d{3})","$1"); String []so=ip.split("s"); TreeSet<String>ts=new TreeSet<String>(); for(String s:so) { ts.add(s); } for(String s:ts) { // System.out.println(s); System.out.println(s.replaceAll("0*(d+)","$1")); //System.out.println(s.replaceAll("0+([0-9]+.)","$1").replaceAll(".0+([0-9]+)",".$1")); } }总共分三步,第一步,把每位数字前加两个0。 第二步,每个数字调整到三位。 第三步,排序,并在输出时,将每个数字前面多余的0删去。 第三步稍微难些,有两种办法,第一种:替换两次,第一次把前面的0,数字和数字后的点,三者进行匹配,替换成数字和数字后的点。但发现最后一个数字后面没点,即匹配 失败,于是乎,再把前面的点,前面的0和数字三者进行匹配,替换成点和数字。 第二种(推荐):每个数字都有三位,数字(前面有0个0或多个0)和(一个数字或多个数字),两者进行匹配,替换成(一个数字或多个数字)。(一开始以为101,这样处理后,会变为11,后来发现101整体都被匹配,这个优先级高,而不是把01进行匹配,换为1。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |