using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?:(?:(?:mdmcomm|checkin)\.(?:eu|us|jp)|(?:e(?:ba|df|pns)|msp|identity|repository|(?:(?:eu|us|jp)02\.)?protect|(?:(?:eu|us|jp)\.)?mdm)|(?:.*\.a\.ecaserver))|(redirector))\.eset\.(?(1)systems$|com$)?";
string input = @"eba.eset.com
edf.eset.com
epns.eset.com
msp.eset.com
identity.eset.com
repository.eset.com
*.a.ecaserver.eset.com
protect.eset.com
eu02.protect.eset.com
us02.protect.eset.com
jp02.protect.eset.com
redirector.eset.systems
eu.mdm.eset.com
us.mdm.eset.com
jp.mdm.eset.com
mdm.eset.com
checkin.eu.eset.com
checkin.us.eset.com
checkin.jp.eset.com
mdmcomm.eu.eset.com
mdmcomm.us.eset.com
mdmcomm.jp.eset.com
";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase;
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