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

我需要使用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-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']

以上是 Python正则表达式从字符串中提取MAC地址 的全部内容, 来源链接: utcz.com/qa/407471.html

回到顶部