两个字符串上的grep

时间:2013-03-08 00:01:48

标签: r grep

我正在努力抓住字符串中的两个不同元素。

字符串看起来像这样,

str <- c('a_abc', 'b_abc', 'abc', 'z_zxy', 'x_zxy', 'zxy')

我尝试了?grep中的不同选项,但我无法做到这一点,做这样的事情,

grep('[_abc]:[_zxy]',str, value = TRUE)

我想要的是,

[1] "a_abc" "b_abc" "z_zxy" "x_zxy"

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:6)

这应该有效:grep('_abc|_zxy', str, value=T)

X|Y匹配或X匹配

时,

Y匹配

答案 1 :(得分:6)

使用普通括号(,而不是方括号[

grep('_(abc|zxy)',str, value = TRUE)
[1] "a_abc" "b_abc" "z_zxy" "x_zxy"

为了使grep更灵活,您可以执行以下操作:

grep('_.{3}$',str, value = TRUE)

哪个匹配下划线_后跟任意字符.三次{3},紧跟字符串结尾$

答案 2 :(得分:1)

在这种情况下只做:

str[grep("_",str)]

会起作用......在你的具体情况下会更复杂吗?