如何验证MAC地址的格式?

验证用户输入的MAC地址的最佳方法是什么?

格式为HH:HH:HH:HH:HH:HH,其中每个H均为十六进制字符。

例如,00:29:15:80:4E:4A有效而00:29:804E4A无效。

回答:

如果您只是说语法,那么此regexp应该适合您

import re

...

if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", x.lower()):

...

它接受12位十六进制数字与任一:-有或全无作为隔板对之间(但隔板必须均匀…或者全部分离器:或全部-或不存在分离器)。

这是解释:

  • [0-9a-f] 表示十六进制数字
  • {2} 表示我们想要其中两个
  • [-:]?表示破折号或冒号,但可选。请注意,作为 字符的破折号并不表示范围,而仅表示自身。该子表达式包含在括号中,因此以后可以作为反向引用重用。
  • [0-9a-f]{2} 是另一对十六进制数字
  • \\1这意味着我们要匹配之前作为分隔符匹配的表达式。这就是保证均匀性的原因。请注意,regexp语法为,\1但我使用的是常规字符串,因此必须通过将其加倍来转义反斜杠。
  • [0-9a-f]{2} 另一对十六进制数字
  • {4} 前一个带括号的块必须精确重复4次,总共有6对数字: <pair> [<sep>] <pair> ( <same-sep> <pair> ) * 4
  • $ 字符串必须在它们之后立即结束

请注意,在Python中,re.match仅检查从字符串^开头开始的内容,因此不需要在开头开头。

以上是 如何验证MAC地址的格式? 的全部内容, 来源链接: utcz.com/qa/432903.html

回到顶部