2

What does this regex do?

<!--.*?-->
1
  • 2
    Why downvote question and then upvote answers? It looks like legit beginner question. It could benefit from some details (e.g. which regex flavour: vim, perl, extended .. or example usage).
    – Sebastian
    Oct 17, 2014 at 12:36

2 Answers 2

6

This regular expression will match HTML comments

In particular:

<!-- matches literal string "<!--"
.    matches any character
*    is a quantifier, it means "0 or more" of the previous character
?    makes the regex non-greedy, so it matches as few times as possible
--> matches literal "-->"

So, your regexp against this text:

blah <!-- first --> yaddahyaddah <!-- second --> other random words.

will match only <!-- first -->.

See http://regex101.com/r/gF7vX2/1

Without the ? it would match everything between the first occurrence of <!-- and the final -->, in other words it would match: <!-- first --> yaddahyaddah <!-- second -->

See http://regex101.com/r/fP4kA3/1

3
  • <!-- matches the characters <!-- literally
  • . matches any character (except newline)
  • *? is a quantifier that matches the preceding regex between zero and unlimited times, as few times as possible, expanding as needed [lazy]
  • --> matches the characters --> literally

Answer from the regex tester http://regex101.com/r/lA1bH5/2

Note that * matches the preceding regex between zero and unlimited times, as many times as possible.  This is an important distinction.  Consider the following two regexs:

  • A: <!--.*?-->   (the one you asked about)
  • B: <!--.*-->

And consider data line D, which is shown below.  Regex A will find two matches in it; regex B finds only one:

D: <!-- comment one --> HTML <!-- comment two -->

A: (.... match #1 ....)      (.... match #2 ....)
B: (................. match #1 .................)

So regex B will incorrectly treat the HTML between the two comments as if it were in a comment.

1
  • The explanation by rob is correct. You could use such regular expressions to modify comments in HTML or XML files.
    – Abrixas2
    Oct 17, 2014 at 10:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .