正则表达式匹配 MAC 地址

Regex matching MAC address

我正在尝试从此字符串中获取所有有效的 MAC 地址:

00:1e:68:51:4f:a9    <-> 00:1a:8c:10:ad:30          9       540       8       336      17       876    90.457130000       198.0143

我试过这个和其他一些正则表达式:

^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$

此处为正则表达式 101:

https://regex101.com/r/kI5nI6/1

我不明白为什么我没有得到任何匹配项。

  • 您必须删除锚点 ^$

  • 您必须在字符集中添加 a-z.. 或者使用 (?i)(i 修饰符)使搜索不区分大小写

以下将起作用:

([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})

DEMO

^$ 表示只匹配 MAC 地址的字符串,而不匹配字符串中 MAC 地址的部分。此外,您的正则表达式使用大写字母 (A-F),但该字符串中的 MAC 地址是小写字母。您是否在进行不区分大小写的搜索(如果使用 re 模块,则为 re.IGNORECASE)?尝试打开不区分大小写的搜索或在 A-F 后添加 "a-f"。

附带说明一下,没有理由将 : 括在方括号 ([:]) 中,因为那意味着 "match any one of this one character"。你可以直接使用:

关闭不区分大小写你应该可以使用这个:

([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})

不区分大小写:

([0-9A-F]{2}:){5}([0-9A-F]{2})