我试着首先检查一个字符串是否符合MAC地址的格式,如果符合,我想从字符串中提取所有字节值。在
到目前为止,我写了这篇文章,它成功地匹配了mac地址的格式是否正确:
mac_regx = re.compile(r'^([0-9A-F]{1,2})(\:[0-9A-F]{1,2}){5}$', re.IGNORECASE)
但是当我使用这个正则表达式来提取字节值时,我只得到第一个和最后一个:
^{pr2}$
我知道我可以简单地split
通过:
来完成这项工作。我只是希望能够同时完成匹配和值提取,只需使用一个regex一步。在
Tags:
如果需要所有匹配项,则应避免使用
{5}
:或者,再短一点
^{pr2}$您还可以列出一个字符串
'[0-9A-F]{1,2})'
的6个实例,并用'\:'
将它们连接起来。在我作弊并使用了mauro.stettler提交的变体。我认为这是非常清楚和直截了当的一句话。}。谢谢马里奥!在
mac_validation
应返回True
或{有许多不同的可能格式。因此,单个正则表达式可能很难处理所有这些问题。在
如果您愿意使用代码而不是regex,the IPAddress Java library将同时处理各种格式。在
库将读取MAC地址的最常用格式,如aa:bb:cc:dd:ee:ff、aa-bb-cc-dd-ee-ff,aabb.ccdd.eeff,aa-bb-cc-dd-ee-ff,它支持48位或64位的地址,还允许您指定地址范围,如aa-ff:bb:cc:*:ee:ff
验证地址是否有效:
相关问题 更多 >
编程相关推荐