C# Regex Validating Mac Address -
i trying validate mac addresses. in instance there no -
or :
example valid mac either:
0000000000 00-00-00-00-00-00 00:00:00:00:00:00
however keep getting false when run against below code:
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.text.regularexpressions; namespace parsingxml { class program { static void main(string[] args) { console.write("give me mac address: "); string input = console.readline(); input = input.replace(" ", "").replace(":","").replace("-",""); regex r = new regex("^([:xdigit:]){12}$"); if (r.ismatch(input)) { console.write("valid mac"); } else { console.write("invalid mac"); } console.read(); } } }
output: invalid mac
.net regex does not have support posix character class. , if support, need enclose in []
make effective, i.e. [[:xdigit:]]
, otherwise, treated character class characters :
, x
, d
, i
, g
, t
.
you want regex instead (for mac address after have cleaned unwanted characters):
^[a-fa-f0-9]{12}$
note cleaning string of space, -
, :
, allow inputs shown below pass:
34: 3-342-9fbc: 6:7
Comments
Post a Comment