使用grep匹配模式R.

时间:2013-12-04 11:39:27

标签: r grep

我有一系列字符,例如

"TB=7"
"RT=9"
"UI=19"
"RT=91"

所有这些都保存在名为tu的varibale中。我写的时候

grep("RT=9",tu, values=TRUE)

我确实得到RT = 9和RT = 91作为输出。但我只想要RT = 9。有没有办法做到这一点?

Thnaks

2 个答案:

答案 0 :(得分:3)

如果您想要完全匹配,为什么要使用正则表达式?刚

tu == "RT=9"

将完美地工作(但它返回一个布尔向量而不是索引或值)。要获取值,请使用tu[tu == "RT=9"]。要获取索引,请使用which。或者,假设您在唯一元素表中搜索唯一完全匹配,match也可能是合适的:

hit <- match('RT=9', tu) # hit == 2

也就是说,您还可以通过指定字符串应包含其他内容来执行与grep的全流匹配:

grep("^RT=9$",tu, values=TRUE)

^$分别匹配字符串的开头和结尾。看看regular-expressions.info,这是一个很好的参考。

答案 1 :(得分:2)

您可以尝试以下方法:

grep('^RT\=9$', tu, values=TRUE)