ComeçarComece de graça

A interrogação e seus dois significados

O operador OR é útil quando você sabe exatamente quais opções são válidas e quando tem certeza de que uma delas está presente. Mas e se você quiser corresponder a um padrão em que uma parte às vezes aparece e às vezes não? É aí que entra o ponto de interrogação ?:

O ? pode tornar opcional o caractere ou grupo anterior. Com ele, uma expressão regular faz correspondência mesmo se uma parte do padrão estiver ausente. Mas atenção: se ele vier após um multiplicador como * ou +, o ponto de interrogação pode ter um segundo efeito:

O ? também pode tornar “preguiçoso” (lazy) o multiplicador anterior, em vez de “ganancioso” (greedy). Isso significa que, em vez de as expressões regulares buscarem o número máximo de caracteres, o ? passa a encontrar o número mínimo de correspondências no texto.

Este exercício faz parte do curso

Expressões Regulares Intermediárias em R

Ver curso

Instruções do exercício

  • Faça corresponder tanto o singular "Screen" quanto o plural "Screens" tornando o último "s" opcional.
  • Faça corresponder uma quantidade aleatória de caracteres arbitrários antes de uma vírgula usando .*.
  • Faça corresponder o mesmo padrão com um ponto de interrogação ? após o asterisco — você percebe a diferença?

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Match both Screen and Screens by making the last "s" optional
str_match(lines, pattern = "Screens___")

# Match a random amount of arbitrary characters, followed by a comma
str_match(lines, pattern = "___,")

# Match the same pattern followed by a comma, but the "lazy" way
str_match(lines, pattern = "___,")
Editar e executar o código