The following code can be used to split the paragraph as specified in the question
void Main()
{
string fileText = System.IO.File.ReadAllText(@"C:\ParaGraphText.txt");
fileText = fileText.Replace("\n","»");
MatchCollection matches = System.Text.RegularExpressions.Regex.Matches(fileText,@"({\s*[A-Z]\s*}(.*?)(?={\s*[A-Z]\s*})|{\s*[A-Z]\s*}(.*))", RegexOptions.Multiline);
string splitParaGraphText = "";
foreach(Match mat in matches) {
if (mat.Captures.Count > 0)
splitParaGraphText += mat.Captures[0].Value +
"\r\n=============================================================\r\n";
}
splitParaGraphText = splitParaGraphText.Replace("»","\n");
System.IO.File.WriteAllText(@"C:\SplitParaGraphText.txt",finalText);
}
NOTE: for a quick test
Create a a text file, paste the paragraph text given in the question
Use LINQPad, which can be downloaded from
http://www.linqpad.net/[
^], with C# program option under Language combo box