using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var line = "Keeping the line intact, replace me, but not you, keep this too.\n\nRetaining me, replace one, but not two, ignore three.";
var res = Regex.Replace(line, @"replace (?<target>.*), but not (?<source>.*),",
m => "replace " + m.Groups["source"].Value.Replace("o", "1") + ", but not " + m.Groups["source"].Value + ",");
Console.WriteLine(res);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIGxpbmUgPSAiS2VlcGluZyB0aGUgbGluZSBpbnRhY3QsIHJlcGxhY2UgbWUsIGJ1dCBub3QgeW91LCBrZWVwIHRoaXMgdG9vLlxuXG5SZXRhaW5pbmcgbWUsIHJlcGxhY2Ugb25lLCBidXQgbm90IHR3bywgaWdub3JlIHRocmVlLiI7CiAgICAgICAgdmFyIHJlcyA9IFJlZ2V4LlJlcGxhY2UobGluZSwgQCJyZXBsYWNlICg/PHRhcmdldD4uKiksIGJ1dCBub3QgKD88c291cmNlPi4qKSwiLAogICAgICAgICAgICAgICAgICAgbSA9PiAicmVwbGFjZSAiICsgbS5Hcm91cHNbInNvdXJjZSJdLlZhbHVlLlJlcGxhY2UoIm8iLCAiMSIpICsgIiwgYnV0IG5vdCAiICsgbS5Hcm91cHNbInNvdXJjZSJdLlZhbHVlICsgIiwiKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShyZXMpOwoJfQp9