有效MAC地址的正则表达式:不是88 | 87 | FF | 00

时间:2015-08-26 23:26:29

标签: regex mac-address

A"有效" MAC地址是6组十六进制字符对,用短划线或冒号分隔。

示例:

3D-F2-C9-A6-B3-4F
08:F2:C9:A6:B3:4F

然而,"无效" MAC地址包含00FF8887的十六进制对。

示例:

00-00-00-00-00-00
FF-FF-FF-FF-FF-FF
88-88-88-88-87-88

这是我到目前为止所得到的:

(?!8)([0-9A-F]{2})([:-][0-9A-F]{2}){5}

但出于某种原因,我不知道为什么,我不能使用:

(?!88|87|FF|00)

对于正则表达式的否定部分。

注意:不是重复的SO条目,因为它会查找无效的十六进制对并将其排除。

1 个答案:

答案 0 :(得分:2)

在整个输入上使用负面预测:

^((?!00|FF|88|87)[0-9A-F]{2}([:-]|$)){6}$

请参阅live demo

注意如何通过对分隔符或输入结尾使用替换来简化正则表达式。