我希望得到某些单词中character
元素的所有出现的索引。假设我查找的这些character
元素包括:l
,e
,a
,z
。
我在grep
函数及其数十次修改中尝试了以下正则表达式,但我一直没有收到我想要的内容。
grep("/([leazoscnz]{1})/", "ylaf", value = F)
给了我
numeric(0)
我想要的地方:
[1] 2 3
答案 0 :(得分: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