2014-07-01 42 views
0

我想在某个词中获取所有出现元素character的索引。假设我寻找的这些character元素是:l,e,a,z获取索引字符串中的所有字符元素匹配R

我尝试了grep函数中的以下正则表达式及其几十个修改,但是我一直没有收到我想要的东西。

grep("/([leazoscnz]{1})/", "ylaf", value = F) 

给我

numeric(0) 

,我想:

[1] 2 3 
+3

也许'gregexpr(“[leazoscnz]”,“ylaf”)'? –

+0

谢谢!这是诀窍:) – user3793180

回答

2

要使用一个字符串的单个字符grep工作,首先需要分割字符串成独立的特征向量。您可以使用strsplit此:

strsplit("ylaf", split="")[[1]] 
[1] "y" "l" "a" "f" 

接下来,你需要简化你的正则表达式,并再次尝试grep

strsplit("ylaf", split="")[[1]] 
grep("[leazoscnz]", strsplit("ylaf", split="")[[1]]) 

[1] 2 3 

但它更容易使用gregexpr

gregexpr("[leazoscnz]", "ylaf") 
[[1]] 
[1] 2 3 
attr(,"match.length") 
[1] 1 1 
attr(,"useBytes") 
[1] TRUE 
+0

谢谢你的回答!根据@alexis_laz评论,我并不需要分割任何东西;) – user3793180

+0

我编辑了我的答案。 – Andrie

相关问题