using System;
using System.Text .RegularExpressions ;
using System.Collections .Specialized ;
class Program
{
static void Main( ) {
string s1 = @"show database;
insert into table_x values (" "string;s" "," "id_s" ",1);
insert into table2_x values (" "s;s" ",1);" ;
var myRegex = new Regex( @"" "[^" "]*" "|((?=;))" ) ;
string replaced = myRegex.Replace ( s1, delegate( Match m) {
if ( m.Groups [ 1 ] .Value == "" ) return m.Value ;
else return "SplitHere" ;
} ) ;
string[ ] splits = Regex.Split ( replaced, "SplitHere" ) ;
Console.WriteLine ( "*** HERE ARE THE SPLIT STRINGS ***" ) ;
foreach ( string split in splits) Console.WriteLine ( split) ;
Console.WriteLine ( "\n Press Any Key to Exit." ) ;
Console.ReadKey ( ) ;
} // END Main
} // END Program
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZDsKY2xhc3MgUHJvZ3JhbQp7CnN0YXRpYyB2b2lkIE1haW4oKSAgewpzdHJpbmcgczEgPSBAInNob3cgZGF0YWJhc2U7IAppbnNlcnQgaW50byB0YWJsZV94IHZhbHVlcyAoIiJzdHJpbmc7cyIiLCIiaWRfcyIiLDEpOwppbnNlcnQgaW50byB0YWJsZTJfeCB2YWx1ZXMgKCIicztzIiIsMSk7IjsKdmFyIG15UmVnZXggPSBuZXcgUmVnZXgoQCIiIlteIiJdKiIifCgoPz07KSkiKTsKc3RyaW5nIHJlcGxhY2VkID0gbXlSZWdleC5SZXBsYWNlKHMxLCBkZWxlZ2F0ZShNYXRjaCBtKSB7CiAgICBpZiAobS5Hcm91cHNbMV0uVmFsdWUgPT0gIiIpIHJldHVybiBtLlZhbHVlOwogICAgZWxzZSByZXR1cm4gIlNwbGl0SGVyZSI7CiAgICB9KTsKc3RyaW5nW10gc3BsaXRzID0gUmVnZXguU3BsaXQocmVwbGFjZWQsIlNwbGl0SGVyZSIpOwpDb25zb2xlLldyaXRlTGluZSgiKioqIEhFUkUgQVJFIFRIRSBTUExJVCBTVFJJTkdTICoqKiIpOwpmb3JlYWNoIChzdHJpbmcgc3BsaXQgaW4gc3BsaXRzKSBDb25zb2xlLldyaXRlTGluZShzcGxpdCk7CkNvbnNvbGUuV3JpdGVMaW5lKCJcblByZXNzIEFueSBLZXkgdG8gRXhpdC4iKTsKQ29uc29sZS5SZWFkS2V5KCk7Cn0gLy8gRU5EIE1haW4KfSAvLyBFTkQgUHJvZ3JhbQ==