A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵茹艳 中级黑马   /  2012-5-15 16:06  /  2376 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何用正则表达式把192.168.1.50替换成192.168.001.050?

4 个回复

倒序浏览
毕老师的最后正则表达式里有
回复 使用道具 举报
String str1 = "192.168.1.50";
String[] parts = str1.split(".");
StringBuilder sb = new StringBuilder();

for(String s : parts){
        s.replaceAll("([0-9]+)", "0*$1{3}");
        sb.append(s);
}
System.out.println(sb.toString());
大致写了一下过程,不知道具体的正则表达式替换是否正确,但是思路是这样的,楼主要是发现有错误大可不必参考,自己写出来更有价值。
希望能帮到你啊。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
直接考你的代码运行控制台无输出啊!下面是我的做法,两次替换
String ip = "我的IP是: 192.168.1.50";
        ip = ip.replaceAll("(\\d{1,3})", "00$1").replaceAll("0*(\\d{3})", "$1");// 00192.00168.001.0050 -> 192.168.001.050
                System.out.println(ip);
回复 使用道具 举报
        192.168.1.50替换成192.168.001.050如下:
        ip_str = ip_str.replaceAll("(\\d+)", "00$1");//这里用到正则表达式的替换$1代表前边括号里的内容,也就是在每位数上加0,
                System.out.println(ip_str);
                ip_str = ip_str.replaceAll("0*(\\d{3})", "$1");//(\\d{3})这里表示从保留左面的三个数
                System.out.println(ip_str);
//一般用在按照字符串的字典顺序排序,
//但是必须要先保证每一个ip段的位数是3位。补足用0补。
               
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马