using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var input = "{{test_data1&&!test_data2}}";
var result = Regex.Replace(input, @"{{(!?\w+(?:\s*(?:&&|\|\|)\s*!?\w+)*)}}", m =>
Regex.Replace(
Regex.Replace(m.Groups[1].Value, @"\s*(&&|\|\|)\s*", " $1 "),
@"\w+",
"mystring.$&"));
Console.WriteLine(result);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKdXNpbmcgU3lzdGVtLkxpbnE7CnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICB2YXIgaW5wdXQgPSAie3t0ZXN0X2RhdGExJiYhdGVzdF9kYXRhMn19IjsKICAgICAgICB2YXIgcmVzdWx0ID0gUmVnZXguUmVwbGFjZShpbnB1dCwgQCJ7eyghP1x3Kyg/OlxzKig/OiYmfFx8XHwpXHMqIT9cdyspKil9fSIsIG0gPT4KICAgICAgICAJUmVnZXguUmVwbGFjZSgKICAgICAgICAJCVJlZ2V4LlJlcGxhY2UobS5Hcm91cHNbMV0uVmFsdWUsIEAiXHMqKCYmfFx8XHwpXHMqIiwgIiAkMSAiKSwKICAgICAgICAJCUAiXHcrIiwKICAgICAgICAJCSJteXN0cmluZy4kJiIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShyZXN1bHQpOwogICAgfQp9