我想知道正确的正则表达式匹配多个MAC地址分隔我的任何分隔符,如逗号。
单个MAC地址的正则表达式为:^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$
。
因此,对于以逗号分隔的多个MAC地址,我认为^(([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2},?)){+}$
可以解决问题。
我哪里错了?任何帮助将不胜感激,谢谢。
编辑:有人问过出了什么问题。好吧,简单地说,正则表达式不起作用。假设我输入单个(有效)MAC地址,它被标记为无效的MAC地址。对于由逗号分隔的多个MAC地址也是如此。
ASP .NET页面上的文本框的验证程序需要正则表达式。如果需要更多细节,请告诉我。
答案 0 :(得分:4)
^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}(,([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2})*$
有关使正则表达式与分隔列表匹配的详细信息,请参阅Regex for Comma delimited list。基本上你需要将正则表达式放在一个MAC地址后跟一个包含逗号的组和一个匹配零次或多次的MAC地址的正则表达式。在您尝试的解决方案中,逗号是完全可选的。
答案 1 :(得分:0)
试试这个^([0-9a-fA-F] {2} [: - ]){5} [0-9a-fA-F] {2}(,([0-9a-fA-F] ] {2} [: - ]){5} [0-9A-FA-F] {2})+
答案 2 :(得分:0)
^(?:((?:[a-fA-F0-9]{2}[-:]){5}(?:[a-fA-F0-9]{2}))(?:,|$)))+$
这可确保八位字节由:
或-
分隔。不允许使用空格或其他字符。第一组将捕获所有mac地址。匹配将捕获整个字符串,如果无效则匹配失败。