Python正则表达式从字符串中提取MAC地址
我需要使用pythonre
引擎编写正则表达式的帮助,以:
- 从文本文件中提取所有MAC地址
- 提取具有以下格式的所有字符串:
foo bar ... MAC:ADDRESS ... baz bat \r\n
提前致谢!
我尝试了以下操作来提取MAC地址,但是很幸运:
import rep = 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 rep = 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