【问题标题】:Regex MacAddress: exclude fake values正则表达式 Mac 地址:排除错误值
【发布时间】:2021-05-07 11:30:46
【问题描述】:

我使用正则表达式^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$,它工作正常。

问题是有时我会得到虚假值,例如:00:00:00:00:00:00

我尝试搜索算法并了解,没有明确的算法可用于验证。但我想排除明确的虚假值,如00:00:00:00:00:0011:11:11:11:11:11...99-99-99-99-99-99

有人可以帮助我使用这样的正则表达式,找到这样的值吗?谢谢

【问题讨论】:

    标签: regex mac-address


    【解决方案1】:

    你可以使用

    ^(?!(\d)(?:[:-]?\1)*$)([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
    

    请参阅regex demo

    您可以使用^(?!(\d)(?:[:-]?\1)*$)(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$ 摆脱捕获组。

    详情

    • ^ - 字符串开头
    • (?!(\d)(?:[:-]?\1)*$)
    • (?:[0-9A-Fa-f]{2}[:-]){5} - 五个重复的两个十六进制字符,后跟 :-
    • [0-9A-Fa-f]{2} - 两个十六进制字符
    • $ - 字符串结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-15
      • 2011-07-14
      • 2022-01-13
      • 2011-05-14
      • 1970-01-01
      • 2023-01-12
      • 2013-09-17
      • 1970-01-01
      相关资源
      最近更新 更多