返回
正则表达式教程:匹配MAC地址
正则表达式
2024-02-28 16:06:57
一、正则解释
正则表达式:
/^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i
说明:
^
:匹配字符串开头。$
:匹配字符串结尾。(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}
:匹配MAC地址的两个主要格式,分别是用冒号(:
)分隔的十六进制数字或用连字符(-
)分隔的十六进制数字。[a-f0-9][0,2,4,6,8,a,c,e]
:匹配十六进制数字或大写字母A-F
中的任何一个。[a-f0-9]{2}
:匹配两个十六进制数字或大写字母A-F
。i
:不区分大小写。
二、使用场景
MAC地址匹配正则表达式可用于:
- 验证网络设备的物理地址。
- 从日志或配置文件中提取MAC地址。
- 自动化网络设备配置任务。
三、代码示例
JavaScript
const regex = /^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i;
const macAddress = '38:f9:d3:4b:f5:51';
console.log(regex.test(macAddress)); // true
Java
import java.util.regex.Pattern;
public class MacAddressMatcher {
public static void main(String[] args) {
String regex = "^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}import java.util.regex.Pattern;
public class MacAddressMatcher {
public static void main(String[] args) {
String regex = "^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$";
String macAddress = "38:f9:d3:4b:f5:51";
boolean matches = Pattern.matches(regex, macAddress);
System.out.println(matches); // true
}
}
quot;;
String macAddress = "38:f9:d3:4b:f5:51";
boolean matches = Pattern.matches(regex, macAddress);
System.out.println(matches); // true
}
}
PHP
<?php
$regex = "/^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i";
$macAddress = '38:f9:d3:4b:f5:51';
if (preg_match($regex, $macAddress)) {
echo "Valid MAC address";
} else {
echo "Invalid MAC address";
}
Python
import re
regex = r"^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}import re
regex = r"^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$"
macAddress = '38:f9:d3:4b:f5:51'
result = re.match(regex, macAddress)
if result:
print("Valid MAC address")
else:
print("Invalid MAC address")
quot;
macAddress = '38:f9:d3:4b:f5:51'
result = re.match(regex, macAddress)
if result:
print("Valid MAC address")
else:
print("Invalid MAC address")