Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214183
  • 博文数量: 87
  • 博客积分: 192
  • 博客等级: 入伍新兵
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-14 07:44
文章分类

全部博文(87)

文章存档

2013年(1)

2012年(86)

分类:

2012-06-25 21:51:43

原文地址:正则匹配数字段和IP MAC 作者:zooyo

匹配127~362之间数字:
  1. ^(12[7-9]|1[3-9][0-9]|2[0-9][0-9]|3[0-5][0-9]|36[0-2])$
  2.   127-129 130-199     200-299     300-350     360-362

匹配15~568之间的数字:
  1. ^(1[5-9]|[2-9][0-9]|[1-4][0-9][0-9]|5[0-5][0-9]|56[0-8])$
  2.   15-19  20-99      100-499         500-559     560-568

这个没有任何捷径,只有拆分数字段来一个一个匹配,也没什么技巧,大家仔细看看,多试试就熟练了。一定要把^和$加在首尾,这是起锚定作用,否则正则引擎会匹配到包含该数字段的内容,加上锚定过后才能精确匹配。

匹配IP地址的正则:
  1. ^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$

匹配MAC地址的正则:
  1. ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$

注意实现中都需要扩展正则的支持,如果是grep请加 -E 参数,或者用 egrep,sed请加 -r 参数。awk是默认支持扩展正则的。
阅读(1807) | 评论(0) | 转发(0) |
0

上一篇:awk之变量篇

下一篇:ASCII码表

给主人留下些什么吧!~~