ViceroyFizzlebottom
asked on
Regular Expression Search/Replace in ASP.NET
Hello and thanks in advance for any assistance.
I have an ASP.NET application that sends emails out. I have a static HTML template with variable identifiers which look like this: %%VariableData%%
When an email gets sent, all the variables in the template are simply replaced using a String.Replace function.
My problem is that using the "%%.*%%' regular expression it will find things like this: %%strSchoolURL%%/Login.asp x?Email=%% strEmailAd dress%% as one big variable instead of finding one instance of %%strSchoolURL%% and one instance of %%strEmailAddress%%.
I'm thinking it's just a matter of fine tuning the regular expression.
Any hints would be greatly appreciated.
I have an ASP.NET application that sends emails out. I have a static HTML template with variable identifiers which look like this: %%VariableData%%
When an email gets sent, all the variables in the template are simply replaced using a String.Replace function.
My problem is that using the "%%.*%%' regular expression it will find things like this: %%strSchoolURL%%/Login.asp
I'm thinking it's just a matter of fine tuning the regular expression.
Any hints would be greatly appreciated.
String valueRegex = @"%%.*%%";
strEmailText = // Read in static .html text
// Define a regular expression for repeated words.
Regex rx = new Regex(@"%%.*%%", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (Regex.IsMatch(strEmailText, valueRegex))
{
// Find matches.
MatchCollection matches = rx.Matches(strEmailText);
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
//replace variables in the email text with values from DB
#region Switch Cases
switch (groups.SyncRoot.ToString())
{
case "%%strSchoolContact%%":
{
replacementText = ds.Tables[0].Rows[0]["strSchoolContact"].ToString();
strEmailText = strEmailText.Replace("%%strSchoolContact%%", replacementText);
break;
}
// etc, etc for every defined variable element
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
*sigh* can't believe I brain cramped on that. Thanks for the quick response.
Thanks for the question and the points.
%%[^%]*%%