我写了这个 perl 正则表达式来获取所有的 mac 地址:
^(?([0-9A-Fa-f]{12}))$
这很好用,但是反向匹配(所有没有mac地址的字符串)不起作用:
^(?!([0-9A-Fa-f]{12}))$
编写此正则表达式的最佳方法是什么?
使用您的原始模式,您开始一个条件((?(...)
部分),但没有 then/else 子句。我很确定你不想要这个。
您的第二个模式存在问题,您正在使用否定的前瞻检查条件,但您不匹配某些内容。所以改成
^(?![0-9A-Fa-f]{12}$).*$
这将匹配任何不是[0-9A-Fa-f]{12}
.