如何验证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