php 正则mac地址,正则表达式匹配MAC地址、邮箱地址、IP地址
(1)匹配MAC地址
1)MAC地址由12個(gè)16進(jìn)制的字母組成
2)16個(gè)字母是 0~9、a~f 。不區(qū)分大小寫(xiě),一般為大寫(xiě)
3)每?jī)蓚€(gè)字母為一組,共六組,每組間用冒號(hào):隔開(kāi)
匹配思路:
00:0C:29:88:83:1A
1)先匹配前兩個(gè)字母;用元字符[] 匹配單個(gè)字符,用{2}匹配2次
2)接著匹配冒號(hào)和兩個(gè)字母;后面的跟這個(gè)匹配方式相同,用{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工具切割
方法:以等號(hào)為分隔符,取第二個(gè)
[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)用戶名最少三個(gè)字符,由由字母、數(shù)字、下劃線組成,字母不區(qū)分大小寫(xiě)
3)域名應(yīng)至少有一個(gè) . 分隔,分隔的各部分至少2個(gè)字符,可能由字母、數(shù)字組成
匹配思路:
1)用戶名在這范圍內(nèi)[0-Z_],所有數(shù)字字母下劃線,最少匹配三次
2)域名小點(diǎn) .前面的字母至少2次,小點(diǎn)的字母包括小點(diǎn)整部分至少匹配一次。小點(diǎn)需要轉(zhuǎn)義,不然會(huì)匹配任何單個(gè)字符
[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地址
1)IP地址是一個(gè)32位的二進(jìn)制數(shù),通常被分割為4個(gè)“8位二進(jìn)制數(shù)”
2)IP地址通常用“點(diǎn)分十進(jìn)制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進(jìn)制整數(shù)
[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]#
當(dāng)然,這粗略的匹配,更精確的匹配思路有,配了好久都沒(méi)成功,暈~~
匹配思路:
(1)第一列最少一位數(shù),最多三位數(shù),是三位數(shù)的不能大于255
(2)第一列一位數(shù)是不能是0
(3)最后一列是三位數(shù)時(shí),不能是255
(4)最后一列是一位數(shù)時(shí),不能是0
一位數(shù): [0-9]
兩位數(shù): 10~99 ?[1-9][0-9]
三位數(shù): 100~255
100~199 、 1[0-9]{2}
200~249、 ?2[0-4][0-9]
250~255 ? 25[0-5]
第一列:
是一位數(shù):[1-9]
第四列
不能是0 , 255
總結(jié)
以上是生活随笔為你收集整理的php 正则mac地址,正则表达式匹配MAC地址、邮箱地址、IP地址的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle保存type类型,oracl
- 下一篇: PHP服务器端语言是什么意思,PHP作为