using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?:([[:xdigit:]]{2})([^[:xdigit:]]?)(?1)(\2(?1))(?3){3}|((?1){2})((?2))(?4)\5(?4))$";
string input = @"# Common formats :
fc:92:3b:ed:cb:a9
fc-92-3b-ed-cb-a9
fc92.3bed.cba9
# Matching is case insensitive :
fC:92:3b:Ed:cB:a9
fC92.3bEd.cBa9
# Separator can be empty or any character execept hexadecimal ones :
fc 92 3b ed cb a9
fc92g3bedgcba9
fc923bedcba9
# Separators must be identicals, will not match otherwise :
fc:92:3b-ed:cb:a9
fc92.3bed;cba9";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx