user336245
user336245

Reputation:

Replacing strings using regex

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.

Upvotes: 3

Views: 71

Answers (2)

Jon Skeet
Jon Skeet

Reputation: 1504172

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);

Upvotes: 3

Kirill Polishchuk
Kirill Polishchuk

Reputation: 56222

Set single line option (?s), e.g.: (?s)<!-- link -->.*<!-- /link -->

Upvotes: 0

Related Questions