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 redel 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.