我从这个Regex链接获得了Javascript正则表达式。但它的匹配也混合了MAC地址模式
/^([0-9a-f]{1,2}[\.:-]){5}([0-9a-f]{1,2})$/i
例如
AA-BB.CC.DD.EE.FF
如上所述regex它的真实,但我想在整个mac地址匹配相同的量词。根据我的要求,上面的mac地址是错误的。
那么请帮助我如何匹配相同的量词。即点(。)找到5而不是混合模式相同的短划线( - )和冒号
答案 0 :(得分:4)
如下所示更改正则表达式。
^[0-9a-f]{1,2}([\.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$
不区分大小写的修饰符i
用于执行不区分大小写的匹配。
> /^[0-9a-f]{1,2}([.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$/i.test('AA-BB.CC.DD.EE.FF')
false
> /^[0-9a-f]{1,2}([.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$/i.test('AA.BB.CC.DD.EE.FF')
true
答案 1 :(得分:4)
^[0-9a-f]{1,2}([\.:-])(?:[0-9a-f]{1,2}\1){4}[0-9a-f]{1,2}$
试试这个。看看演示。
答案 2 :(得分:4)
\b([0-9A-F]{2}[:-]){5}([0-9A-F]){2}\b
\b
是^
和$
之类的锚点,匹配在一个名为"字边界的位置"。
[0-9A-F]
是一个重复{2}
次的字符集。在字符集:
或-
之后,分组([0-9A-F]{2}[:-])
重复{5}
次,这给了我们ex:2F:3D:A9:B6:3F:
。然后我们再次使用相同的字符集[0-9A-F]
重复{2}
次。
答案 3 :(得分:0)
提供的答案很好,但我会添加小写字母和点(。)分隔符。此外,每个位置只有一个字母或数字的MAC地址无效。
这是一个匹配数字,大写和小写字母的正则表达式,检查每个位置的两个字符,并允许使用分号(:),短划线( - )或点(。)作为分隔符。
^([0-9a-fA-F]{2}[:.-]){5}[0-9a-fA-F]{2}$
下面的正则表达式也将匹配没有分隔符的MAC地址(即像AABBCCDDEEFF这样的MAC地址),因为有些供应商代表没有分隔符的MAC地址。
^([0-9a-fA-F]{2}[:.-]?){5}[0-9a-fA-F]{2}$