#r #regex
#r #регулярное выражение
Вопрос:
Я использую команду grep в R, чтобы найти все вхождения слова Coal
в столбце фрейма данных. Coal
может встречаться в любом месте значения. Например, Coal Combustion
это также допустимое значение. Что такое регулярное выражение для этого?
Я пробовал использовать:
grep("[:Coal:]", NEI[,5])
но это не дает мне правильных ответов.
Любая помощь приветствуется.
Ответ №1:
Вы можете использовать это:
regmatches(subject, gregexpr(".*Coal.*", subject, perl=TRUE));
Если вы хотите убедиться, что уголь не встроен в слово, просто добавьте границы:
grepl("\bCoal\b", subject, perl=TRUE);
Комментарии:
1. Это соответствовало
subject<-"Coalescent Tree"
бы, и я не уверен, что это то, что задумано.2. @MrFlick Ты прав. Дал ему второй вариант с границами. Спасибо, что указали на это, я не понял этого из вопроса. 🙂
3. В R это должно быть «\ b», чтобы правильно избежать косой черты.
Ответ №2:
Попробуйте
grep("\bCoal\b", NEI[,5])
b
Часть соответствует границам слов, поэтому «Уголь» не может касаться других букв.
Комментарии:
1. @Moon_Watcher традиционно мы принимаем ответы, которые решили наши проблемы, щелкнув зеленую галочку рядом с ответом. Это показывает, что на вопрос был дан удовлетворительный ответ и является частью хорошего гражданства сайта. Спасибо.
2. @Simon O’Hanlon я знаю, но это не позволило бы мне немедленно проверить ответ. Мне пришлось подождать некоторое время, прежде чем я это сделал. Спасибо!