Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485049
  • 博文数量: 279
  • 博客积分: 4467
  • 博客等级: 上校
  • 技术积分: 2830
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-03 14:43
文章分类

全部博文(279)

文章存档

2013年(1)

2012年(39)

2011年(35)

2009年(29)

2008年(131)

2007年(44)

分类:

2011-10-13 10:41:10

原文地址:正则匹配数字段 作者: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是默认支持扩展正则的。
阅读(362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~