删除所有字符

时间:2017-09-28 03:04:18

标签: r regex string list gsub

我有一列字符串,其中包含

之类的内容

"a1.p.e0.l""k.r.a1.f.t.i0"

我试图删除所有内容直到第一个元音。因此,对于上面的第一个单词,不会删除任何内容。对于第二个单词,将返回“a1.f.t.i0”。

我正在玩gsub,但我不知道如何从某个集合中删除任何元音(我有v<-c('a', 'e', 'i', 'o', 'u'),所以我需要能够删除其中一个前面的所有字符这个元音集中的字符串。任何建议??

1 个答案:

答案 0 :(得分:1)

您可以匹配并删除^[^aeiou]*

s <- c("a1.p.e0.l", "k.r.a1.f.t.i0")
sub("^[^aeiou]*", "", s, ignore.case = T)      # ignore.case depends on if you want to match 
                                               # capital vowel
# [1] "a1.p.e0.l" "a1.f.t.i0"

  • ^匹配字符串的开头;
  • [^aeiou]*匹配零个或多个非元音字符;

从字符集开始:

v <- c('a', 'e', 'i', 'o', 'u')
s <- c("a1.p.e0.l", "k.r.a1.f.t.i0")

pattern = sprintf("^[^%s]*", paste(v, collapse = ''))
sub(pattern, "", s, ignore.case = T)
# [1] "a1.p.e0.l" "a1.f.t.i0"