Python正则表达式从字符串中提取MAC地址

发布于 2021-01-29 17:00:16

我需要使用pythonre引擎编写正则表达式的帮助,以:

  1. 从文本文件中提取所有MAC地址
  2. 提取具有以下格式的所有字符串: foo bar ... MAC:ADDRESS ... baz bat \r\n

提前致谢!

我尝试了以下操作来提取MAC地址,但是很幸运:

import re
p = re.compile(ur'((?:(\d{1,2}|[a-fA-F]{1,2}){2})(?::|-*)){6}')
test_str = u"TEXT WITH SOME MAC ADDRESSES 00:24:17:b1:cc:cc TEXT CONTINUES WITH SOME MORE TEXT 20:89:86:9a:86:24"

found = re.findall(p, test_str)
for a in found:
    print a
关注者
0
被浏览
145
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我炮制了以下内容:([0-9a-fA-F]:?){12}匹配文本中的MAC地址。

    这是应该如何工作的:

    • [0-9a-fA-F] 匹配用于表示十六进制数字的字符
    • :? 匹配可选的冒号
    • (...){12}-然后将所有这些分组并重复12次。12,因为MAC地址由6对十六进制数字组成,用冒号分隔

    您可以在这里看到它的实际效果。

    然后,Python代码变为:

    import re
    p = re.compile(r'(?:[0-9a-fA-F]:?){12}')
    test_str = u"TEXT WITH SOME MAC ADDRESSES 00:24:17:b1:cc:cc TEXT CONTINUES WITH SOME MORE TEXT 20:89:86:9a:86:24"
    
    re.findall(p, test_str)
    

    结果产生:

    [u'00:24:17:b1:cc:cc', u'20:89:86:9a:86:24']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看