「有效」MAC地址是6組十六進制字符對,由短劃線或冒號分隔。有效MAC地址的正則表達式:not 88 | 87 | FF | 00
實施例:
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,或者整個字符串不能是'87-87-87-87-87-87' ? – Dai
不,這個問題對於4字節模式有一個特定的附加規則,而這正是導致此問題的模式。 – MSalters
爲什麼你必須在一個正則表達式中做到這一點?驗證MAC地址,然後使用第一個測試中的捕獲組測試無效組合。 –