想象一下,我们想要找到下面字符串中的所有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()这样做的复杂方法 - 但我觉得有更好(更容易)的方法.
您可能感兴趣regmatches:
> regmatches(xx, gregexpr("FOO[0-9]+", xx))[[1]]
[1] "FOO1921" "FOO1234" "FOO12345" "FOO1643"
Run Code Online (Sandbox Code Playgroud)