使用R中的grep查找字符串作为整个单词(但不是字符串作为单词的一部分)

时间:2011-08-29 08:45:47

标签: regex r grep

我正在寻找合适的正则表达式。以下

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

返回t1的所有元素,但只有第一个和第二个是正确的。我只想要带有单词/短语TH的条目返回?

3 个答案:

答案 0 :(得分:35)

您需要在搜索字符串周围添加word boundary anchors\b),以便只匹配整个单词(即由非单词字符或字符串的开头/结尾包围的单词,其中“单词字符” “表示\w,即字母数字字符。)

尝试

grep("\\bTH\\b",t3, value=T)

答案 1 :(得分:16)

您可以在正则表达式中使用\<\>来匹配单词的开头/结尾。

grep ("\\<TH\\>", t1)等。

答案 2 :(得分:0)

另一个选择:

grep("^TH$",t1, value=T)