RegEx XVIII: Quantificadores — Controle os quantificadores gulosos com ?

Os quantificadores indicam a quantidade de caracteres ou expressões que devem corresponder. Por padrão, quantificadores como * e + são “gulosos”, ou seja, tentam abranger o máximo possível da string. O caractere ? depois do quantificador faz com que ele seja “não guloso”, ou seja, pare assim que encontrar uma correspondência.

"some <foo> <bar> new </bar> </foo> thing" usando o padrão guloso `<.*>` ➞ "<foo> <bar> new </bar> </foo>"
"some <foo> <bar> new </bar> </foo> thing" usando o padrão preguiçoso `<.*?>` ➞ "<foo>"

Defina REGEXP como um padrão que encontre todos os comentários HTML no texto. Use um quantificador preguiçoso (? depois de um quantificador) na sua expressão.

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

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

Notas

Substitua o padrão provisório em REGEXP. Os métodos fornecidos já encontram as correspondências e verificam o uso de um quantificador preguiçoso; você não precisa reescrevê-los.

Consulte os Recursos se precisar de ajuda.

Exemplo em Java

assertTrue(Program.usesLazyQuantifier());