using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<=^label )\S+(?!.*(?:\n(?!label).*)*?\n[ \t]*\[end_timeline\])";
string input = @"label Colorcode (Object)
Dialog
Speaker: ""Text""
Speaker 2: ""[i]Text[/i]! [pause={pause.medium}] more text.""
do function_name(""parameter"", {parameter})
# comment, there are no inline-comments
[end_timeline]
label Maroon (Guitar)
Speaker: ""Text""
[end_timeline]
label Pink (Chest)
Speaker: ""Text""
label Königsblau (Wardrobe)
Speaker: ""Text""
Speaker: ""Text""
Speaker: ""Text""
[end_timeline]
label Azur (Sorcerers Hat)
Speaker: ""Text""
# [end_timeline]
label Jade (Paintings)
Speaker: ""Text""
label Gras (Ship in a Bottle)
Speaker: ""Text""
Speaker: ""Text""
[end_timeline]
label Goldgelb (Golden Apple)
Speaker: ""Text""
[end_timeline]
label Himmelblau (Helmet)
Speaker: ""Text""
Speaker: ""Text""
Speaker: ""Text""
Speaker: ""Text""";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx