RegEx XIX: Cuantificadores codiciosos frente a perezosos

De forma predeterminada, los cuantificadores como * y + son "codiciosos", lo que significa que intentan coincidir con la mayor cantidad posible de caracteres. Usar ? después del cuantificador hace que este sea "perezoso": lo que significa que se detendrá en cuanto encuentre una coincidencia.

txt = "1232 2133424 809890 548"
re.findall(".+\s", txt) ➞ ["1232 2133424 809890 "]
re.findall(".+?\s", txt) ➞ ["1232 ", "2133424 ", "809890 "]

Escribe una expresión regular para encontrar todos los comentarios HTML del texto. Debes usar cuantificadores perezosos en tu expresión.

txt = "... <!-- My -- comment test --> ..  <!----> .. "
pattern = "yourregularexpressionhere"

re.findall(pattern, txt) ➞ ["<!-- My -- comment test -->", "<!---->"]

Notas

  • Los comentarios HTML tienen el formato <!--this is an HTML comment-->.
  • No necesitas escribir una función, solo el patrón.
  • No elimines import re del código.
  • Encuentra más información sobre RegEx y los cuantificadores en Recursos.
  • Puedes encontrar todos los desafíos de esta serie en mi colección Basic RegEx.