RegEx XVIII: Cuantificadores — Controla su avidez con ?

Los cuantificadores indican cuántos caracteres o expresiones deben coincidir. De forma predeterminada, los cuantificadores como * y + son «codiciosos»: intentan abarcar la mayor parte posible de la cadena. El carácter ? después de un cuantificador lo vuelve «no codicioso»: se detiene en cuanto encuentra una coincidencia.

"some <foo> <bar> new </bar> </foo> thing" usando el patrón codicioso `<.*>` ➞ "<foo> <bar> new </bar> </foo>"
"some <foo> <bar> new </bar> </foo> thing" usando el patrón perezoso `<.*?>` ➞ "<foo>"

Asigna a REGEXP un patrón que encuentre todos los comentarios HTML del texto. Usa un cuantificador perezoso (? después de un cuantificador) en tu expresión.

String text = "... <!-- My -- comment test --> ..  <!----> .. ";

Program.comments(text); // ➞ new String[] { "<!-- My -- comment test -->", "<!---->" }

Notas

Reemplaza el patrón provisional en REGEXP. Los métodos proporcionados ya encuentran las coincidencias y comprueban que se use un cuantificador perezoso; no necesitas reescribirlos.

Consulta los Recursos si necesitas ayuda.

Ejemplo en Java

assertTrue(Program.usesLazyQuantifier());