免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2651 | 回复: 12
打印 上一主题 下一主题

请教一个正则表达式的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-21 11:38 |只看该作者 |倒序浏览
小弟初学正则,现有一个问题无法解决,望大家赐教

有如下格式的数据0010.0100.1001
我希望将其转换为1.1.1.1的IP地址,正则要怎么写?

需要注意的是数据格式也可能是这样1010.0100.1001
这就需要转换成101.1.1.1

实际的需求就是三个数字一组,移除开头无用的0,但是第一个非0数字后的0不能移除。

为了防止误解,再举几个例子

1002.0025.0100 转换成 100.200.250.100
0100.2003.0040 转换成 10.20.30.40

谢谢各位了

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-08-21 11:43 |只看该作者

回复 #1 东方补白 的帖子

有过同样的贴子,自己搜搜。

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
3 [报告]
发表于 2009-08-21 14:42 |只看该作者
sed 's/\.//g;:A;s/\([0-9]\+\)\([0-9]\{3\}\)/\1 \2/;tA'|awk '{for(i=1;i<NF;i++){$i=$i+0;printf $i"."}}END{printf $NF+0"\n"}'

论坛徽章:
0
4 [报告]
发表于 2009-08-21 15:18 |只看该作者
printf

论坛徽章:
0
5 [报告]
发表于 2009-08-21 15:18 |只看该作者
  1. awk '{gsub(/[^0-9]/,"");a=substr($0,1,3);b=substr($0,4,3);c=substr($0,7,3);d=substr($0,10,3);{printf("%d.%d.%d.%d\n",a,b,c,d)}}'
复制代码

暴力法 才三个而已

论坛徽章:
0
6 [报告]
发表于 2009-08-21 17:18 |只看该作者
以前有一个一样的帖子
echo "0010.0100.1001"|sed 's/0*\([0-9]*\)/\1/g'
10.100.1001

论坛徽章:
0
7 [报告]
发表于 2009-08-21 17:32 |只看该作者

  1. sed 's/\.//g;s/.../.&/g;s/\.0\+/./g;s/^.//'
复制代码

[ 本帖最后由 springwind426 于 2009-8-21 17:41 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2009-08-21 17:42 |只看该作者
贴子重复了!!!!
  1. sed 's/\<0\+\([0-9]\)/\1/g' urfile
复制代码

论坛徽章:
0
9 [报告]
发表于 2009-08-21 17:49 |只看该作者
原帖由 blackold 于 2009-8-21 17:42 发表
贴子重复了!!!!sed 's/\



对于IP地址


  1. sed 's/\<0\+//g'
复制代码


也是可以去掉不必要的0 的

论坛徽章:
0
10 [报告]
发表于 2009-08-21 17:49 |只看该作者
多谢各位,这就试一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP