2017-02-17 3 views
-5

У меня есть входной текстИзвлечение строки из текста после согласования - регулярное выражение R

inputQ <- "What can I do ..my baby has rash all over. Suggest good rash cream" 

У меня есть список терминов

terms <- c("diaper","cloth diaper","rash pants","rash","baby wipes","rash cream") 

Я хочу точное совпадение одного из терминов и вернуть его в качестве хорошо я попытался использовать цикл, но есть лучший способ

Результат должен быть

rash cream 

хранится в matchedTerm

+1

Почему вы хотите «сыпь крем», но не «сыпь «Вернулся? Что вы пробовали? –

+0

* Я хочу указать одно из условий * ... какой? – Sotos

+0

Возможный дубликат http://stackoverflow.com/questions/33856148/regex-in-r-extracting-words-from-a-string или http://stackoverflow.com/questions/33784376/extract-word-in- строка-в-г – akrun

ответ

5

Вы можете попытаться получить все матчи, а затем проверить на один с наибольшим количеством символов:

wh_match <- names(unlist(sapply(terms, grep, inputQ))) 
wh_match[which.max(nchar(wh_match))] 
# [1] "rash cream" 
Смежные вопросы