2015-04-14 4 views
0

Я имею дело с очень простым вопросом и ищет строку внутри другой строки. Рассмотрим пример ниже:Поиск точной строки в другой строке

bigStringList <- c("SO1.A", "SO12.A", "SO15.A") 
strToSearch <- "SO1." 
bigStringList[grepl(strToSearch, bigStringList)] 

Я ищу что-то, что, когда я искать, он возвращает только «SO1.A» «SO1.».

Я видел много связанных вопросов о SO, но большинство ответов включает grepl(), который не работает в моем случае.

Большое спасибо за вашу помощь заранее.

+1

Вам нужно бежать «» или он будет интерпретироваться как метасимвол, а не фактический период. Попробуйте этот 'strToSearch <-" SO1 \\. "' – Jota

+0

@Frank, удивительный. В этом-то и дело. Благодарю. – Sam

ответ

3

При поиске простой строки, которая не включает в себя любые метасимволы, вы можете установить fixed=TRUE:

grep("SO1.", bigStringList, fixed=TRUE, value=TRUE) 
# [1] "SO1.A" 

В противном случае, как отмечает Фрэнк, вам нужно, чтобы избежать периода (так, что он будет быть истолковано как фактическое ., а не как символ означает «любой одиночный символ»):

grep("SO1\\.", bigStringList, value=TRUE) 
# [1] "SO1.A" 
Смежные вопросы