using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"CREATE\s+TABLE[^.]*\.(\S*)\s*\((.*?)PRIMARY KEY \(?\(([^)]*)\)\)?\s*\)\s*(?:WITH CLUSTERING ORDER BY \(([^)]*)\))?";
string input = @"CREATE TABLE abcdeg.table_v1 (
""id"" text,
""obj"" text,
""version"" bigint,
output text,
server text,
PRIMARY KEY (""id"", ""obj"", ""version"")
) WITH CLUSTERING ORDER BY (""id"" ASC, ""version"" DESC)
AND bloom_filter_fp_chance = 0.1
AND comment = ''
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
CREATE TABLE abcdeg.result_v1 (
""id"" text,
""obj"" text,
time int,
PRIMARY KEY ((""id"", ""obj""))
) WITH bloom_filter_fp_chance = 0.1
AND comment = ''
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND speculative_retry = '99.0PERCENTILE';";
RegexOptions options = RegexOptions.Singleline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx