正则表达式反转mac-address匹配

时间:2013-06-12 09:26:44

标签: regex perl

我写了这个perl正则表达式来获取所有的mac-addresses:

^(?([0-9A-Fa-f]{12}))$

这很好用,但是inverse match(没有mac-address的所有字符串)都不起作用:

^(?!([0-9A-Fa-f]{12}))$

编写此正则表达式的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用原始模式,您将开始一个条件((?(...)部分),但没有then / else子句。我很确定你不想要这个。

您的第二种模式存在问题,即您正在使用negated lookahead检查某个条件,但是您不符合某些条件。所以把它改成

^(?![0-9A-Fa-f]{12}$).*$

这将匹配任何非[0-9A-Fa-f]{12}的模式。