Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#regex
#quantifier
#metacharacter
#grep
#sed
Medium

O que o símbolo * representa dentro das expressões regulares?

A

Corresponder ao qualificador anterior uma ou mais vezes.

B

Corresponder ao qualificador anterior zero ou mais vezes.

Correct
C

Corresponder ao qualificador anterior zero ou uma vez.

D

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+c exigiria pelo menos um b.
  • "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 \*.