using System;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var s = @"this comes before selection
this is on the same line %% this is the first group and it can have any character /[{3$5!+-p
here is some more text in the middle
this stuff is also on a line with a comment %% this is the second group of stuff !@#%^()<>/~`
this goes after the selections";
var result = Regex.Matches(s, @"%%\s+(.*)")
.Cast<Match>()
.Select(p=>p.Groups[1].Value)
.ToList();
Console.WriteLine(string.Join("\n", result));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIHMgPSBAInRoaXMgY29tZXMgYmVmb3JlIHNlbGVjdGlvbgp0aGlzIGlzIG9uIHRoZSBzYW1lIGxpbmUgJSUgdGhpcyBpcyB0aGUgZmlyc3QgZ3JvdXAgYW5kIGl0IGNhbiBoYXZlIGFueSBjaGFyYWN0ZXIgL1t7MyQ1ISstcApoZXJlIGlzIHNvbWUgbW9yZSB0ZXh0IGluIHRoZSBtaWRkbGUKdGhpcyBzdHVmZiBpcyBhbHNvIG9uIGEgbGluZSB3aXRoIGEgY29tbWVudCAlJSB0aGlzIGlzIHRoZSBzZWNvbmQgZ3JvdXAgb2Ygc3R1ZmYgIUAjJV4oKTw+L35gCnRoaXMgZ29lcyBhZnRlciB0aGUgc2VsZWN0aW9ucyI7CgkJdmFyIHJlc3VsdCA9IFJlZ2V4Lk1hdGNoZXMocywgQCIlJVxzKyguKikiKQoJCSAgICAgICAgICAgIC5DYXN0PE1hdGNoPigpCgkJICAgICAgICAgICAgLlNlbGVjdChwPT5wLkdyb3Vwc1sxXS5WYWx1ZSkKCQkgICAgICAgICAgICAuVG9MaXN0KCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlxuIiwgcmVzdWx0KSk7Cgl9Cn0=