Regex pour adresse MAC

Utilisez /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ pour vérifier qu'une chaîne entière est une adresse MAC valide. Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l'ouvrir dans le Regex Tester avec les exemples préchargés.

Mis à jour le

/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/
Ouvrir dans le Regex Tester
EntréeRésultat
00:1A:2B:3C:4D:5E✓ Correspondance
00-1a-2b-3c-4d-5e✓ Correspondance
001A2B3C4D5E✗ Aucune correspondance
00:1A:2B:3C:4D✗ Aucune correspondance
00:1G:2B:3C:4D:5E✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
[0-9A-Fa-f]{2}Deux chiffres hexadécimaux
[:-]Un deux-points ou un tiret comme séparateur
(?:…){5}Cinq paires suivies de leurs séparateurs
[0-9A-Fa-f]{2}$La sixième paire

Exemples de code

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;

Remarques et limites

Ce motif accepte des séparateurs mixtes (00:1A-2B…). Capturez le premier séparateur et réutilisez-le avec une référence arrière — ^[0-9A-Fa-f]{2}([:-])(?:[0-9A-Fa-f]{2}\1){4}[0-9A-Fa-f]{2}$ — pour exiger la cohérence.

Questions fréquentes

Quelle est la regex pour une adresse MAC ?
/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 00:1A:2B:3C:4D:5E, 00-1a-2b-3c-4d-5e. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le Regex Tester » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances s'affichent en surbrillance pendant que vous modifiez.