Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式匹配MAC地址_Python_Regex_Mac Address - Fatal编程技术网

Python 正则表达式匹配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修饰符)使搜索不区分大小写 以下将起作用

我正在尝试从此字符串获取所有有效的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修饰符)使搜索不区分大小写

以下将起作用:

([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})