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());