我正在寻找正确的正则表达式。下面在R中使用grep来查找字符串作为整个单词(但不是字符串作为单词的一部分)
t1 = c("IGF2, IGF2AS, INS, TH", "TH", "THZH", "ZGTH")
grep("TH",t1, value=T)
回报t1
所有元素,但只有第一和第二是正确的。我只想用词/ TH
返回?
我正在寻找正确的正则表达式。下面在R中使用grep来查找字符串作为整个单词(但不是字符串作为单词的一部分)
t1 = c("IGF2, IGF2AS, INS, TH", "TH", "THZH", "ZGTH")
grep("TH",t1, value=T)
回报t1
所有元素,但只有第一和第二是正确的。我只想用词/ TH
返回?
您需要添加word boundary anchors(\b
)在你的搜索字符串所以只有整个单词将被匹配(即由非单词字符包围字或启动/串,其中“单词字符”是指\w
末,即字母数字字符)。
尝试
grep("\\bTH\\b",t3, value=T)
您可以使用\<
和\>
在正则表达式匹配的单词的开头/结束。
grep ("\\<TH\\>", t1)
等
@Tim Pietzcker更快:)我想知道,如果这两个正则表达式不同? – Anatoliy
你更明确,虽然在这种情况下,它们在功能上是相同的。 –
尽管是两个答案已经有了,你应该指定你说“话”在您的标题是什么意思。那么'TH2'或'TH_TH'呢? –