正则表达式匹配 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})
我正在尝试从此字符串中获取所有有效的 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})