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 = "CATEGORY: SIDES DATE CREATED: 03/12/16"; //PRODUCT: CARROTS DATE DELETED: 05/11/17";
var rx = @"(\b(?:CATEGORY|PRODUCT|DATE (?:CREA|DELE)TED):)";
var chunks = Regex.Split(s, rx);
Console.WriteLine(string.Concat(chunks.Select(x => Regex.IsMatch(x, $"^{rx}$") ? x : new String(' ', x.Length))));
var delim = @"\b(?:CATEGORY|PRODUCT|DATE (?:CREA|DELE)TED):";
Console.WriteLine(Regex.Replace(s, $@"(\G(?!^)\s*|{delim}\s*)(?!{delim})\S", "$1 "));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzID0gIkNBVEVHT1JZOiAgICBTSURFUyAgIERBVEUgQ1JFQVRFRDogICAwMy8xMi8xNiI7IC8vUFJPRFVDVDogICAgICBDQVJST1RTICAgIERBVEUgREVMRVRFRDogICAgMDUvMTEvMTciOwoJCXZhciByeCA9IEAiKFxiKD86Q0FURUdPUll8UFJPRFVDVHxEQVRFICg/OkNSRUF8REVMRSlURUQpOikiOwoJCXZhciBjaHVua3MgPSBSZWdleC5TcGxpdChzLCByeCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkNvbmNhdChjaHVua3MuU2VsZWN0KHggPT4gUmVnZXguSXNNYXRjaCh4LCAkIl57cnh9JCIpID8geCA6IG5ldyBTdHJpbmcoJyAnLCB4Lkxlbmd0aCkpKSk7CgkJdmFyIGRlbGltID0gQCJcYig/OkNBVEVHT1JZfFBST0RVQ1R8REFURSAoPzpDUkVBfERFTEUpVEVEKToiOwoJCUNvbnNvbGUuV3JpdGVMaW5lKFJlZ2V4LlJlcGxhY2UocywgJEAiKFxHKD8hXilccyp8e2RlbGltfVxzKikoPyF7ZGVsaW19KVxTIiwgIiQxICIpKTsKCX0KfQ==