// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?m)IF NOT EXISTS \(SELECT \* FROM sys\.objects WHERE object_id = OBJECT_ID\(N'\[(.*?)\]\.\[(.*?)\]'\) AND type = 'D'\)
BEGIN
ALTER TABLE \[(.*?)\]\.\[(.*?)\] ADD DEFAULT \(\((.*?)\)\) FOR \[(.*?)\]").unwrap();
let string = "GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF_EnrollmentPeriod_MedPlans_IsActive]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[EnrollmentPeriod_MedPlans] ADD CONSTRAINT [DF_EnrollmentPeriod_MedPlans_IsActive] DEFAULT ((0)) FOR [IsActive]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__12:00__3EFC4F81]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [12:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__1:00 __3FF073BA]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [1:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__2:00 __40E497F3]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [2:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__3:00 __41D8BC2C]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [3:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__4:00 __42CCE065]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [4:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__5:00 __43C1049E]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [5:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__6:00 __44B528D7]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [6:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__7:00 __45A94D10]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [7:00 AM]
END
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DF__HourlyUsa__8:00 __469D7149]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[HourlyUsageHistory] ADD DEFAULT ((0)) FOR [8:00 AM]
END
";
let substitution = "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[\\1].[\\2]') AND type = 'D')BEGINALTER TABLE [\\3].[\\4] ADD CONSTRAINT [\\2] DEFAULT ((\\5)) FOR [\\6]";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/