using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"desc\s*""(((?!"").)*)((?!\n).)*\n{1}task\s*:(((?!\n).)*)do(((?!\nend).)*)\nend";
string input = @"import 'cloud2/cloud2.rb'
desc ""transfer db from current location to local and new dev""
task :fulldbtransfer => [
:dbdown, :dbup,
:dbup_live,]
$comps_db = ['prube_yalecomps']
$tnew_dbs = [ 'prube_yaletnew_drama_prod',
'prube_yaletnew_summer_cabaret_prod',
'prube_yaletnew_cabaret_prod',
'prube_yaletnew_music_prod',
'prube_yaletnew_rep_prod']
$new_tnew_dbs = [ 'prube_yaletnew_drama',
'prube_yaletnew_summer_cabaret',
'prube_yaletnew_cabaret',
'prube_yaletnew_music',
'prube_yaletnew_rep']
all_erube_dbs = $comps_db + $tnew_dbs
desc ""Transfer Database, complete with tunnel setup and teardown""
task :dbdown do
all_erube_dbs.each do |database_name|
cloud2_mysqldump do tunnel_host 'cumulus-www-master-pub.rs.lynch2.com'
tunnel_user 'www' db_host 'cumulus-db-master.rs.lynch2.com' skip_secure_auth true
db_user 'mysql'
db_pass 'mysql'
db_name "" file_prefix 'SOURCE_'
ignored_tables ['cache','hits','debug','sessionvars','sessions']
end
end
end
task :dbsandr do
dbname = ""prube_yalecomps""
bucket_prefix = ""comps""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [ ]
replace_str [ ] end
dbname = ""prube_yaletnew_drama_prod""
bucket_prefix = ""drame""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [
'prube_yaletnew_drama_prod', ]
replace_str [
""prube_yaletnew_drama"", ] end
dbname = ""prube_yaletnew_summer_cabaret_prod""
bucket_prefix = ""summer-cabaret""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [
'prube_yaletnew_summer_cabaret_prod', ]
replace_str [
'prube_yaletnew_summer_cabaret', ] end
dbname = ""prube_yaletnew_cabaret_prod""
bucket_prefix = ""cabaret""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [
'prube_yaletnew_cabaret_prod', ]
replace_str [
'prube_yaletnew_cabaret', ] end
dbname = ""prube_yaletnew_music_prod""
bucket_prefix = ""music""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [
'prube_yaletnew_music_prod', ]
replace_str [
'prube_yaletnew_music', ] end
dbname = ""prube_yaletnew_rep_prod""
bucket_prefix = ""rep""
cloud2_sed do
source_file ""db-tools/SOURCE_mysqldump_ dest_file ""db-tools/CLOUD2_
find_str [
'prube_yaletnew_rep_prod', ]
replace_str [
'prube_yaletnew_rep', ] end
end
desc ""Send Database to tigard-dev-rds""
task :dbup do
upload_dbs ""reston-dev-rds.aws.lynch2.com""
end
desc ""Send Database to tigard-mail2-rds""
task :dbup_live do
upload_dbs ""reston-live-rds.aws.lynch2.com""
end
def upload_dbs (dbhost)
$comps_db.each do |database_name|
cloud2_mysql do db_host dbhost
db_user 'mysql'
db_pass 'mysql'
db_name ""mysql"" sql_files [""CLOUD2_ end
cloud2_mysql do db_host dbhost
db_user 'mysql'
db_pass 'mysql'
db_name "" sql_files [""erube_upgrade.sql""]
end
end
$new_tnew_dbs.each do |database_name|
cloud2_mysql do db_host dbhost
db_user 'mysql'
db_pass 'mysql'
db_name ""mysql"" sql_files [""CLOUD2_ end
cloud2_mysql do db_host dbhost
db_user 'mysql'
db_pass 'mysql'
db_name "" sql_files [""tnew_erube_upgrade.sql""]
end
end
end
";
RegexOptions options = RegexOptions.Singleline;
Match m = Regex.Match(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