using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var strs = new List { "ABC-210293CompletedReports", "CC517036submittedbyfoobarforABC105799WRS877565", "ABC#86765", "abc99220 / 103743", "AbC99220/103743", "ABC 123 and 1123", "SubmittedbyFooBar.forABC106156.Solutionbuilton4/23/20184:22PM" }; var pattern = new Regex(@"(?i)\d{1,2}/\d{1,2}/\d{4}|(ABC.\d{1,11}| *(?:[/-]|AND) *\d{1,11})", RegexOptions.Compiled); foreach (var s in strs) { var results = pattern.Matches(s) .Cast() .Select(m => m.Groups[1].Value) .ToList(); foreach (var t in results) Console.WriteLine(t); } } }