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.Value, @"\s*(&&|\|\|)\s*", " $1 "),
@"\w+",
"mystring.$&"));
Console.WriteLine(result);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKdXNpbmcgU3lzdGVtLkxpbnE7CnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICB2YXIgaW5wdXQgPSAie3t0ZXN0X2RhdGExJiYhdGVzdF9kYXRhMn19IjsKICAgICAgICB2YXIgcmVzdWx0ID0gUmVnZXguUmVwbGFjZShpbnB1dCwgQCJ7eyE/XHcrKD86XHMqKD86JiZ8XHxcfClccyohP1x3KykqfX0iLCBtID0+CiAgICAgICAgCVJlZ2V4LlJlcGxhY2UoCiAgICAgICAgCQlSZWdleC5SZXBsYWNlKG0uVmFsdWUsIEAiXHMqKCYmfFx8XHwpXHMqIiwgIiAkMSAiKSwKICAgICAgICAJCUAiXHcrIiwKICAgICAgICAJCSJteXN0cmluZy4kJiIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShyZXN1bHQpOwogICAgfQp9