Regex para endereço MAC

Use /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ para verificar se uma string inteira é um endereço MAC válido. Todos os exemplos abaixo foram testados com o padrão, e você pode abri-los no Regex Tester com as amostras já carregadas.

Atualizado em

/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/
Abrir no Regex Tester
EntradaResultado
00:1A:2B:3C:4D:5E✓ Corresponde
00-1a-2b-3c-4d-5e✓ Corresponde
001A2B3C4D5E✗ Não corresponde
00:1A:2B:3C:4D✗ Não corresponde
00:1G:2B:3C:4D:5E✗ Não corresponde

Como o padrão funciona

ParteSignificado
[0-9A-Fa-f]{2}Dois dígitos hexadecimais
[:-]Um separador de dois-pontos ou hífen
(?:…){5}Cinco pares com separadores
[0-9A-Fa-f]{2}$O sexto par

Exemplos de código

JavaScript

const re = /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}', value))

PHP

preg_match('/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/', $value) === 1;

Observações e limitações

Este padrão aceita separadores misturados (00:1A-2B…). Capture o primeiro separador e reutilize-o com uma referência retroativa — ^[0-9A-Fa-f]{2}([:-])(?:[0-9A-Fa-f]{2}\1){4}[0-9A-Fa-f]{2}$ — para exigir consistência.

Perguntas frequentes

Qual é a regex para endereço MAC?
/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ — ela corresponde à string inteira. Veja a tabela acima para entender o que cada parte faz.
Quais exemplos correspondem?
Entre os exemplos testados, estes correspondem: 00:1A:2B:3C:4D:5E, 00-1a-2b-3c-4d-5e. Os outros não correspondem.
Como testo esta regex?
Clique em “Abrir no Regex Tester” — o padrão, as flags e o texto de exemplo são carregados automaticamente, e as correspondências são destacadas conforme você edita.