如何将字符串的部分捕获到矢量中

时间:2017-05-11 01:51:03

标签: r regex stringr

我有以下字符串:

x <- "sim_K1000_human_compact"

如何将1000human以及compact捕获为 向量?

我尝试了这个,但没有用:

> strsplit(base, "sim_K([0-9]+)_(\\w+)_(\\w+)")
[[1]]
[1] ""

3 个答案:

答案 0 :(得分:5)

您可以使用stringr::str_match

str_match(x, "sim_K([0-9]+)_(\\w+)_(\\w+)")[,-1]
# [1] "1000"    "human"   "compact"

答案 1 :(得分:1)

这是一个潜在的基础解决方案:

x <- unlist(strsplit(gsub("sim_K", "", x), "_"))

答案 2 :(得分:1)

我们可以将scansub

一起使用
scan(text=sub("^[^_]+_.", "", x), what ="", quiet=TRUE, sep="_")
#[1] "1000"    "human"   "compact"