const regex = /desc\s*"(((?!").)*)((?!\n).)*\n{1}task\s*:(((?!\n).)*)do(((?!\nend).)*)\nend/s;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('desc\\s*"(((?!").)*)((?!\\n).)*\\n{1}task\\s*:(((?!\\n).)*)do(((?!\\nend).)*)\\nend', 's')
const str = `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
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions