Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replacing strings using regex

Tags:

.net

regex

c#-4.0

I have a very simple regex that seems to work in in online regex testing systems but when I plug it into my code it fails.

I would like to remove items between two comments in html.

I am using the following code to do so:

string source = x;
String matchpattern = @"<!-- link -->.*<!-- /link -->";
String replacementpattern = @"";
string result = Regex.Replace(source, matchpattern, replacementpattern);

where x is the following:

<!-- link -->\n\t\t\t\t\t\t<p class=\"backToTop\"><a href=\"#content\">    Back to top</a></p>\n\t\t\t\t\t\t<!-- /link -->

If anyone has any ideas then they would be much appreciated.


1 Answers

The \n in x is confusing it... but it's easy to fix. Just add a fourth argument of RegexOptions.Singleline so that . still matches \n.

to your Replace call:

string result = Regex.Replace(source, matchPattern, replacementPattern,
                              RegexOptions.Singleline);
like image 116
Jon Skeet Avatar answered Mar 11 '26 03:03

Jon Skeet