http://www.perlmonks.org?node_id=110589


in reply to Regular Expression for MAC Address

Today I needed a regex in order to validate a MAC address field from a form. The other responses in this thread are excellent, but here's another alternative for this task:
^(?:[[:xdigit:]]{1,2}[-:]){5}[[:xdigit:]]{1,2}$
I wanted to allow a user to type in a:b:c:d:e:f instead of 0a:0b:0c:0d:0e:0f, hence the {1,2} quantifiers. Using the POSIX character class :xdigit: tidies things up and makes it obvious what input is required, which helps document the code. I liked petdance's solution (++), but didn't use it because in my application I only wanted to allow ':' as the separator.

Thanks to the helpful CB people who assisted me with this: blakem, demerphq, davorg & Petruchio.