我正在尝试从此字符串中获取所有有效的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
我无法弄清楚为什么我没有得到任何比赛。
答案 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})