我需要帮助编写正则表达式,使用 python re
引擎来:
- 从文本文件中提取所有 MAC 地址
- 使用以下格式提取所有字符串:
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
原文由 SlothGR 发布,翻译遵循 CC BY-SA 4.0 许可协议
我编写了以下内容:
([0-9a-fA-F]:?){12}
以匹配文本中的 MAC 地址。这是它应该如何工作的:
[0-9a-fA-F]
匹配用于表示十六进制数的字符:?
匹配一个可选的冒号(...){12}
- 然后将所有这些分组并重复 12 次。 12 因为MAC地址由6对十六进制数组成,用冒号隔开您可以在 此处查看 实际效果。
然后 Python 代码变为:
结果产生: