加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式匹配MAC地址、邮箱地址、IP地址

发布时间:2020-12-13 23:10:33 所属栏目:百科 来源:网络整理
导读:( 1 )匹配 MAC 地址 1 ) MAC 地址由 12 个 16 进制的字母组成 2 ) 16 个字母是 0~9 、 a~f 。不区分大小写,一般为大写 3 )每两个字母为一组,共六组,每组间用冒号 : 隔开 匹配思路: 00 :0C :29 :88 :83 :1A 1 )先匹配前两个字母;用元字符 [] 匹配
1)匹配MAC地址

1MAC地址由1216进制的字母组成

216个字母是 0~9a~f 。不区分大小写,一般为大写

3)每两个字母为一组,共六组,每组间用冒号:隔开

匹配思路:

00:0C:29:88:83:1A

1)先匹配前两个字母;用元字符[] 匹配单个字符,用{2}匹配2

2)接着匹配冒号和两个字母;后面的跟这个匹配方式相同,{5}匹配5


[root@moni01 tmp]# egrep '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}' /etc/sysconfig/network-scripts/ifcfg-eth0   --color
HWADDR=00:0C:29:E3:5F:39
[root@moni01 tmp]#


如果要仅输出MAC地址,那就要用awk工具切割

方法:以等号为分隔符,取第二个


[root@moni01 tmp]# egrep '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}' /etc/sysconfig/network-scripts/ifcfg-eth0   | awk -F "=" '{print $2}'
00:0C:29:E3:5F:39
[root@moni01 tmp]#



2)匹配邮箱地址

1)邮箱完整地址由用户名@域名组成

2)用户名最少三个字符,由由字母、数字、下划线组成,字母不区分大小写

3)域名应至少有一个 . 分隔,分隔的各部分至少2个字符,可能由字母、数字组成

匹配思路:

1)用户名在这范围内[0-Z_],所有数字字母下划线,最少匹配三次

2)域名小点 .前面的字母至少2次,小点的字母包括小点整部分至少匹配一次。小点需要转义,不然会匹配任何单个字符


[root@moni01 tmp]# egrep '[0-Z_]{3,}@[0-Z]{2,}(.[0-Z]{2,})+' mail
123456789@qq.com
hlf@163.com
[root@moni01 tmp]#


3)匹配IP地址

1IP地址是一个32位的二进制数,通常被分割为4“8二进制

2IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数



[root@moni01 tmp]# ifconfig | egrep '[0-9]{1,3}(.[0-9]{1,3}){3}'
          inet addr:192.168.10.253  Bcast:192.168.10.255  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0
[root@moni01 tmp]#



当然,这粗略的匹配,更精确的匹配思路有,配了好久都没成功,晕~~



匹配思路:

1)第一列最少一位数,最多三位数,是三位数的不能大于255

2)第一列一位数是不能是0

3)最后一列是三位数时,不能是255

4)最后一列是一位数时,不能是0


一位数: [0-9]

两位数: 10~99 [1-9][0-9]

三位数: 100~255


100~199 1[0-9]{2}

200~249 2[0-4][0-9]

250~255 25[0-5]


第一列:

是一位数:[1-9]

第四列

不能是0 255

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读