Devemos escapar a interrogação com duas contrabarras, uma vez que esse sinal de pontuação também é, como o ponto, uma expressão do regex.
Agora vejamos a função que nos poderá ajudar com este exercício. Ela se chama str_replace. No primeiro argumento da função inserimos o vetor que desejamos modificar. No segundo argumento inserimos o padrão que queremos localizar e substituir. Por fim, no terceiro argumento inserimos o padrão de substituição.
Como no objeto padrao2 existem dois termos, devemos fazer duas substituições por meio da função str_replace.
A função str_replace apenas substitui o primeiro padrão encontrado. Se houvesse mais padrões do mesmo tipo, a função não faria a substituição dos termos excedentes. Para substituir todos os padrões que tivessem a especificação inserida seria necessário utilizar a função str_replace_all (de forma semelhante à função str_remove_all)
Alteremos o objeto paises para incorporar as mudanças propostas neste exercício e vejamos como ficaram os dados da coluna pais_port.
Utilizemos um pouco mais de regex para deixar apenas os nomes dos países na coluna “pais_port”. Como podemos fazer isso? Uma solução, dentre várias, é fazer o seguinte:
Explicando o padrão regex acima: o termo " -" localiza um espaço e um hífen. Por construção, sabemos que esses termos separam o fim do nome do país dos termos “observação1” e “observação2”. Como visto anteriormente o “.” pode representar letras e espaços, além de outros caracteres, e o “+” significa que queremos que o termo imediatamente anterior esteja presente uma ou mais vezes. Assim, " -.+" captura toda a parte do texto que queremos eliminar.
Uma função útil para ver o que uma construção regex captura a partir de um padrão inserido é a função str_view. Para usar essa função você precisa instalar o pacote htmlwidgets.
Como podemos observar, o padrão acima apenas captura " - ". E o padrão abaixo captura tudo após o fim do nome do país como já havíamos explicado.