using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var s = "My test string is ##[FirstVal][SecondVal]##";
var myvalues = Regex.Matches(s, @"##(?:\[([^][]*)])+##")
.Cast<Match>()
.SelectMany(m => m.Groups[1].Captures
.Cast<Capture>()
.Select(t => t.Value));
Console.WriteLine(string.Join(", ", myvalues));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzID0gIk15IHRlc3Qgc3RyaW5nIGlzICMjW0ZpcnN0VmFsXVtTZWNvbmRWYWxdIyMiOwoJCXZhciBteXZhbHVlcyA9IFJlZ2V4Lk1hdGNoZXMocywgQCIjIyg/OlxbKFteXVtdKildKSsjIyIpCgkJCS5DYXN0PE1hdGNoPigpCgkJCS5TZWxlY3RNYW55KG0gPT4gbS5Hcm91cHNbMV0uQ2FwdHVyZXMKICAgICAgICAgICAgICAuQ2FzdDxDYXB0dXJlPigpCiAgICAgICAgICAgICAgLlNlbGVjdCh0ID0+IHQuVmFsdWUpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigiLCAiLCBteXZhbHVlcykpOwoJfQp9