Использование grep в R для поиска строк как целых слов (но не строк как части слов) - PullRequest
24 голосов
/ 29 августа 2011

Я ищу правильное регулярное выражение. Следующие

t1 = c("IGF2, IGF2AS, INS, TH", "TH", "THZH", "ZGTH")
grep("TH",t1, value=T)

возвращает все элементы t1, но верны только первый и второй. Я просто хочу, чтобы записи со словом / фразой TH возвращались?

Ответы [ 3 ]

35 голосов
/ 29 августа 2011

Вам необходимо добавить якоря границ слов (\b) вокруг строк поиска, чтобы сопоставлялись только целые слова (т. Е. Слова, окруженные несловесными символами или началом / концом строки, где«символ слова» означает \w, то есть буквенно-цифровой символ).

Попробуйте

grep("\\bTH\\b",t3, value=T)
16 голосов
/ 29 августа 2011

Вы можете использовать \< и \> в регулярном выражении, чтобы соответствовать началу / концу слова.

grep ("\\<TH\\>", t1) и т. Д.

0 голосов
/ 05 ноября 2018

Другой вариант:

grep("^TH$",t1, value=T)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...