【问题标题】:How to capture parts of string into vector如何将部分字符串捕获到向量中
【发布时间】:2017-05-11 11:51:59
【问题描述】:

我有以下字符串:

x <- "sim_K1000_human_compact"

如何将1000humancompact 捕获为 向量?

我试过了,但没有用:

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

【问题讨论】:

  • 有点丑,不过strsplit("sim_K1000_human_compact", 'sim_K|_')[[1]][-1]
  • strsplit(x, '\\w+[A-Z]|_')

标签: r regex stringr


【解决方案1】:

你可以使用stringr::str_match:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我们可以使用scansub

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        • 2019-12-08
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多