gpt4 book ai didi

python - 如何验证 MAC 地址的格式?

转载 作者:太空狗 更新时间:2023-10-29 16:59:11 24 4
gpt4 key购买 nike

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

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

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

最佳答案

如果您只是指语法,那么这个正则表达式应该适合您

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

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

关于python - 如何验证 MAC 地址的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com