对于我的应用程序,我需要一个RegEx,它可以查明一个字符串是否至少部分是一个MAC地址,但到目前为止我只找到了以下RegEx,它只能找到某个东西是完整的MAC地址
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
什么是RegEx(可能来自上述那个)返回这3个字符串的完全匹配:
93:31:13:E1:D3:1A
3E-EB-47-8
84:0C:
虽然没有为这两个字符串返回匹配项:
6B-90-8Y-31-D1-7K
37-4H-31
注意:我不会说这是THIS问题的“实际”副本
答案 0 :(得分:2)
如果要将部分MAC地址与1种分隔符匹配,可以使用
^[0-9A-Fa-f]{1,2}(?:(?::[0-9A-Fa-f]{0,2}){0,5}|(?:-[0-9A-Fa-f]{0,2}){0,5})$
请参阅regex demo。
要匹配字符串中混合的-
和:
的MAC地址,您可以使用
^[0-9A-Fa-f]{1,2}(?:[:-][0-9A-Fa-f]{0,2}){0,5}$
请参阅this regex demo。
正则表达式详细信息
此处的MAC地址可以包含6个:
或-
个分隔的2-hex char部分,并将其匹配为一种类型。
^
- 字符串的开头[0-9A-Fa-f]{1,2}
- 1或2个十六进制字符(?:
(?::[0-9A-Fa-f]{0,2}){0,5}
- 0到5次重复:
后跟0到2个十六进制字符|
- 或(?:-[0-9A-Fa-f]{0,2}){0,5}
- 0到5次重复-
后跟0到2个十六进制字符)
- 非捕获交替组的结束$
- 字符串结束。