1

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

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

这很好用,但是反向匹配(所有没有mac地址的字符串)不起作用:

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

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

4

1 回答 1

1

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

您的第二个模式存在问题,您正在使用否定的前瞻检查条件,但您不匹配某些内容。所以改成

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

这将匹配任何不是[0-9A-Fa-f]{12}.

于 2013-06-12T09:47:30.733 回答