返回

正则表达式教程:匹配MAC地址

正则表达式

一、正则解释

正则表达式:

/^(([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")