using System;
using System.Text .RegularExpressions ;
class Program
{
static void Main( )
{
// This is the input string we are replacing parts from.
string input = "select id, :DATA_INI, ':DATA_INI', titulo, date_format(data_criacao,'%d/%m/%Y %H:%i') str_data_criacao\n "
+ "from v$sugestoes\n "
+ "where data_criacao between :DATA_INI AND :DATA_FIM AND ':TEST'\n "
+ " and 'test ''string :DATA_INI '' :DATA_INI '\n "
+ "order by data_criacao" ;
string output = Regex.Replace ( input, ":(?=([^']*'[^']*')*[^']*$)" , "@" ) ;
Console.WriteLine ( output) ;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpjbGFzcyBQcm9ncmFtCnsKICAgIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewoJLy8gVGhpcyBpcyB0aGUgaW5wdXQgc3RyaW5nIHdlIGFyZSByZXBsYWNpbmcgcGFydHMgZnJvbS4KCXN0cmluZyBpbnB1dCA9ICJzZWxlY3QgaWQsIDpEQVRBX0lOSSwgJzpEQVRBX0lOSScsIHRpdHVsbywgZGF0ZV9mb3JtYXQoZGF0YV9jcmlhY2FvLCclZC8lbS8lWSAlSDolaScpIHN0cl9kYXRhX2NyaWFjYW9cbiIKICAgICAgICAgICAgKyAiZnJvbSB2JHN1Z2VzdG9lc1xuIgogICAgICAgICAgICArICJ3aGVyZSBkYXRhX2NyaWFjYW8gYmV0d2VlbiA6REFUQV9JTkkgQU5EIDpEQVRBX0ZJTSBBTkQgJzpURVNUJ1xuIgogICAgICAgICAgICArICIgIGFuZCAgJ3Rlc3QgJydzdHJpbmcgOkRBVEFfSU5JICcnIDpEQVRBX0lOSSAnXG4iCiAgICAgICAgICAgICsgIm9yZGVyIGJ5IGRhdGFfY3JpYWNhbyI7CgoJc3RyaW5nIG91dHB1dCA9IFJlZ2V4LlJlcGxhY2UoaW5wdXQsICI6KD89KFteJ10qJ1teJ10qJykqW14nXSokKSIsICJAIik7CgoJQ29uc29sZS5Xcml0ZUxpbmUob3V0cHV0KTsKICAgIH0KfQ==