using System; using System.Text.RegularExpressions; using System.Collections.Specialized; class Program { static void Main() { string s1 = @"Task Predecessors:[[Relation [Task id=12 uniqueID=145 name=Alibaba1] -> [Task id=10 uniqueID=143 name=Alibaba2]], [Relation [Task id=12 uniqueID=145 name=Alibaba3] -> [Task id=11 uniqueID=144 name=Alibaba4]], [Relation [Task id=12 uniqueID=145 name=Alibaba5] -> [Task id=9 uniqueID=142 name=Alibaba6]]]"; var resultList = new StringCollection(); try { var myRegex = new Regex(@"-> \[Task id=(\d+)"); Match matchResult = myRegex.Match(s1); while (matchResult.Success) { resultList.Add(matchResult.Groups[1].Value); Console.WriteLine(matchResult.Groups[1].Value); matchResult = matchResult.NextMatch(); } } catch (ArgumentException ex) { // Syntax error in the regular expression } Console.WriteLine("\nPress Any Key to Exit."); Console.ReadKey(); } // END Main } // END Program