正则表达式匹配MAC地址

时间:2015-06-10 15:52:03

标签: python regex 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

我无法弄清楚为什么我没有得到任何比赛。

2 个答案:

答案 0 :(得分:2)

  • 您必须删除锚点^$

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

以下工作:

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

请参阅DEMO

答案 1 :(得分:2)

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

在旁注中,没有理由在括号(:)中包含[:],因为这意味着&#34;匹配这一个字符中的任何一个&#34;。您可以直接使用:

如果不区分大小写,您应该可以使用此功能:

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

不区分大小写:

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