R - 使用grep和gsub在同一个(字符)向量元素中返回多个匹配项

Jim*_* Bo 0 grep r

想象一下,我们想要找到下面字符串中的所有FOO和后续数字并将它们作为向量返回(对于不可读性道歉,我想说明在FOO之前和之后没有规则模式):

xx <- "xasdrFOO1921ddjadFOO1234dakaFOO12345ndlslsFOO1643xasdf"
Run Code Online (Sandbox Code Playgroud)

我们可以用它来找到其中一个(取自1)

gsub(".*(FOO[0-9]+).*", "\\1", xx)
[1] "FOO1643"
Run Code Online (Sandbox Code Playgroud)

但是,我希望将所有这些作为向量返回.

我曾经想过使用strplit()和gregexpr()这样做的复杂方法 - 但我觉得有更好(更容易)的方法.

seb*_*n-c 6

您可能感兴趣regmatches:

> regmatches(xx, gregexpr("FOO[0-9]+", xx))[[1]]
[1] "FOO1921"  "FOO1234"  "FOO12345" "FOO1643" 
Run Code Online (Sandbox Code Playgroud)