You can do this with regular expressions and a bit of Linq.
string s = "test [4df] test [5y" + Environment.NewLine + "u] test [6nf]"; ICollection<string> matches = Regex.Matches(s.Replace(Environment.NewLine, ""), @"\[([^]]*)\]") .Cast<Match>() .Select(x => x.Groups[1].Value) .ToList(); foreach (string match in matches) Console.WriteLine(match);
Output:
4df 5yu 6nf
Here is what regular expression means:
\[ : Match a literal [ ( : Start a new group, match.Groups[1] [^]] : Match any character except ] * : 0 or more of the above ) : Close the group \] : Literal ]
Mark byers
source share