Python 正则表达式匹配MAC地址
我正在尝试从此字符串获取所有有效的MAC地址:Python 正则表达式匹配MAC地址,python,regex,mac-address,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 Regex 101此处: 我不明白为什么我没有找到匹配项。 您必须删除锚定^和$ 您必须在角色集中添加a-z。。或者使用(?i)(i修饰符)使搜索不区分大小写 以下将起作用
00:1e:68:51:4f:a9 <-> 00:1a:8c:10:ad:30 9 540 8 336 17 876 90.457130000 198.0143
Regex 101此处:
我不明白为什么我没有找到匹配项。- 您必须删除锚定
和^
$
- 您必须在角色集中添加
。。或者使用a-z
(i修饰符)使搜索不区分大小写(?i)
([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})
请参见锚定
^
和$
表示只匹配MAC地址字符串,而不匹配MAC地址字符串中的部分。此外,您的正则表达式使用大写字母(A-F),但该字符串中的MAC地址是小写的。您是否正在进行不区分大小写的搜索(如果使用re
模块,则为re.IGNORECASE
)?尝试打开不区分大小写的搜索或在a-f之后添加“a-f”
另一方面,没有理由将:
放在括号中([:]
),因为这意味着“匹配这一个字符中的任何一个”。您可以直接使用:
在禁用不区分大小写的情况下,您应该能够使用:
([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})
在以下位置不区分大小写:
([0-9A-F]{2}:){5}([0-9A-F]{2})
但在您的演示中,您将匹配每个MAC地址中的最后两个字节。它似乎与整个MAC地址不匹配它与整个MAC地址匹配。。但是颜色是因为您使用的捕获组
()
。。现在检查演示..我不知道我是否遗漏了什么,但看看这里:您的正则表达式与完整的mac地址不匹配,这是因为您还需要“全局”标志(正则表达式右侧文本框中的“g”)。这使得它可以在一行中搜索多个匹配项:
([0-9A-F]{2}:){5}([0-9A-F]{2})