Expressões regulares são elementos de texto, palavras-chave e modificadores que formam um padrão usado para encontrar e, opcionalmente, alterar um padrão correspondente. Muitos programas suportam o uso de expressões regulares. O comando grep do Linux é o mais empregado para realizar buscas em arquivos e fluxos de texto. Sobre os caracteres com significado especial em expressões regulares utilizados no comando grep chamados operadores assinale a afirmativa correta.
- A)O asterisco * representa o fim da linha.
Errada: o asterisco * indica repetição de zero ou mais ocorrências do elemento anterior, não o fim da linha.
- B)O acento circunflexo ^ representa o começo de uma linha.
Certa: o acento circunflexo ^, quando usado no início da expressão, indica o começo de uma linha.
- C)Os colchetes [] indica que o caractere anterior aparece zero ou uma vez.
Errada: colchetes [] definem uma classe/conjunto de caracteres, e não a ideia de zero ou uma ocorrência.
- D)O sinal de interrogação ? é usado para indicar a presença de qualquer caractere.
Errada: o ponto . é que representa qualquer caractere; o ? indica que o elemento anterior é opcional.
Gabarito: B
No grep, as expressões regulares funcionam como um conjunto de sinais para dizer ao sistema o que você quer encontrar dentro do texto. Alguns desses sinais têm significado especial e mudam totalmente a leitura do padrão. Por isso, não basta “ler literalmente” o símbolo: cada operador tem uma função própria. O acento circunflexo ^ é um desses operadores clássicos. Quando usado no início da expressão, ele indica o começo de uma linha. Exemplo: ^Linux busca linhas que começam com “Linux”. Já o cifrão $ indica o fim da linha, então é ele que marca o encerramento, não o asterisco. Os colchetes [] servem para criar um conjunto de caracteres possíveis, como [abc], que casa com a, b ou c. Eles não significam “zero ou uma vez”. Esse papel é do ponto de interrogação ?, que indica ocorrência opcional, isto é, zero ou uma vez. E o ponto . é que representa qualquer caractere, com algumas ressalvas do contexto. Então, o gabarito B está correto porque ^ realmente representa o começo de uma linha nas expressões regulares usadas no grep. Esse é um fundamento básico de regex em ferramentas Unix/Linux, muito cobrado em provas porque mistura símbolos parecidos, mas com funções bem diferentes.