You want to remove comments from an (X)HTML or XML document. For example, you want to remove comments from a web page before it is served to web browsers in order to reduce the file size of the page and thereby reduce load time for people with slow Internet connections.
Finding comments is not a difficult task, thanks to the availability of lazy quantifiers. Here is the regular expression for the job:
|Regex options: Dot matches line breaks|
|Regex flavors: .NET, Java, PCRE, Perl, Python, Ruby|
|Regex options: None|
To remove the comments, replace all matches with the empty string (i.e., nothing). Recipe 3.14 lists code to replace all matches of a regex.
At the beginning and end of this regular expression are the
literal character sequences ‹
<!--› and ‹
-->›. Since none of those characters are
special in regex syntax (except within character classes, where
hyphens create ranges), they don’t need to be escaped. That just
leaves the ‹
[\s\S]*?› in the
middle of the regex to examine further.
Thanks to the “dot matches line breaks” option, the dot in the regex ...