我正在寻找合适的正则表达式。以下
t1 = c("IGF2, IGF2AS, INS, TH", "TH", "THZH", "ZGTH")
grep("TH",t1, value=T)
返回t1
的所有元素,但只有第一个和第二个是正确的。我只想要带有单词/短语TH
的条目返回?
答案 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)