我写了这个perl正则表达式来获取所有的mac-addresses:
^(?([0-9A-Fa-f]{12}))$
这很好用,但是inverse match(没有mac-address的所有字符串)都不起作用:
^(?!([0-9A-Fa-f]{12}))$
编写此正则表达式的最佳方法是什么?
答案 0 :(得分:1)
使用原始模式,您将开始一个条件((?(...)
部分),但没有then / else子句。我很确定你不想要这个。
您的第二种模式存在问题,即您正在使用negated lookahead检查某个条件,但是您不符合某些条件。所以把它改成
^(?![0-9A-Fa-f]{12}$).*$
这将匹配任何非[0-9A-Fa-f]{12}
的模式。