Extração de substrato do vetor em R

Estou tentando extrair substrings de um texto não estruturado. Por exemplo, suponha um vetor de nomes de países:

countries <- c("United States", "Israel", "Canada")

Como faço para passar esse vetor de valores de caracteres para extrair correspondências exatas de texto não estruturado.

text.df <- data.frame(ID = c(1:5), 
text = c("United States is a match", "Not a match", "Not a match",
         "Israel is a match", "Canada is a match"))

Neste exemplo, a saída desejada seria:

ID     text
1      United States
4      Israel
5      Canada

Até agora eu tenho trabalhado comgsub onde removo todas as não correspondências e elimino e removo as linhas com valores vazios. Eu também tenho trabalhado comstr_extract do pacote stringr, mas não obtiveram êxito ao corrigir corretamente os argumentos para a expressão regular. Qualquer ajuda seria muito apreciada!

questionAnswers(3)

yourAnswerToTheQuestion