一个"有效"的MAC地址是6组十六进制字符对,用破破号或冒号分隔。
的例子:
3D-F2-C9-A6-B3-4F
08:F2:C9:A6:B3:4F
但是,"无效"的MAC地址包含00
, FF
, 88
或87
的十六进制对。
的例子:
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条目,因为它查找无效的十六进制对并排除它们。
在整个输入中使用否定样式:
^((?!00|FF|88|87)[0-9A-F]{2}([:-]|$)){6}$
查看现场演示
请注意如何通过使用分隔符或输入结束符来简化正则表达式。