Administração de Linux Question #019e3987
O que o símbolo * representa dentro das expressões regulares?
Corresponder ao qualificador anterior uma ou mais vezes.
Corresponder ao qualificador anterior zero ou mais vezes.
Corresponder ao qualificador anterior zero ou uma vez.
Corresponder a um caractere literal.
Official Explanation / Community Explanations
O símbolo * em expressões regulares é um quantificador que corresponde ao elemento precedente zero ou mais vezes. É um dos metacaracteres mais fundamentais, permitindo uma correspondência de padrões flexível, onde o caractere ou grupo precedente pode aparecer qualquer número de vezes, inclusive nenhuma.
Como funciona
Em mecanismos de expressões regulares, o quantificador * é aplicado ao caractere ou grupo imediatamente anterior. Por exemplo, o padrão ab*c corresponde a ac, abc, abbc, abbbc e assim por diante. O * torna o b opcional, mas também permite múltiplas ocorrências. Esse comportamento é distinto de outros quantificadores: + requer uma ou mais ocorrências, e ? permite zero ou uma.
Por que o valor correto está certo
A resposta correta é "Corresponder ao qualificador anterior zero ou mais vezes". Esta é a definição padrão do quantificador * em praticamente todas as variantes de expressões regulares (POSIX, compatível com Perl, etc.). É amplamente utilizado em ferramentas como grep, sed, awk e linguagens de programação.
Por que os valores incorretos estão errados
- "Corresponder ao qualificador anterior uma ou mais vezes" descreve o quantificador
+, não*. Por exemplo,ab+cexigiria pelo menos umb. - "Corresponder ao qualificador anterior zero ou uma vez" descreve o quantificador
?, que torna o elemento precedente opcional, mas permite apenas uma única ocorrência. - "Corresponder a um caractere literal" está incorreto porque
*é um metacaractere com significado especial; para corresponder a um asterisco literal, ele deve ser escapado como\*.