正则表达式 Mac 地址:排除错误值
Regex MacAddress: exclude fake values
我使用正则表达式 ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
,它工作正常。
问题是有时我会得到像这样的假值:00:00:00:00:00:00
。
我尝试搜索算法并了解到,没有明确的验证算法。但我想排除明确的虚假值,如 00:00:00:00:00:00
、11:11:11:11:11:11
... 99-99-99-99-99-99
有人可以帮助我找到这样的正则表达式吗?谢谢
您可以使用
^(?!(\d)(?:[:-]?)*$)([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
参见regex demo。
您可以使用 ^(?!(\d)(?:[:-]?)*$)(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$
摆脱捕获组。
详情
^
- 字符串开头
(?!(\d)(?:[:-]?)*$)
(?:[0-9A-Fa-f]{2}[:-]){5}
- 两个十六进制字符重复五次,后跟 :
或 -
[0-9A-Fa-f]{2}
- 两个十六进制字符
$
- 字符串结尾。
我使用正则表达式 ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
,它工作正常。
问题是有时我会得到像这样的假值:00:00:00:00:00:00
。
我尝试搜索算法并了解到,没有明确的验证算法。但我想排除明确的虚假值,如 00:00:00:00:00:00
、11:11:11:11:11:11
... 99-99-99-99-99-99
有人可以帮助我找到这样的正则表达式吗?谢谢
您可以使用
^(?!(\d)(?:[:-]?)*$)([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
参见regex demo。
您可以使用 ^(?!(\d)(?:[:-]?)*$)(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$
摆脱捕获组。
详情
^
- 字符串开头(?!(\d)(?:[:-]?)*$)
(?:[0-9A-Fa-f]{2}[:-]){5}
- 两个十六进制字符重复五次,后跟:
或-
[0-9A-Fa-f]{2}
- 两个十六进制字符$
- 字符串结尾。