【问题标题】:Sub-extract word in file path in RR中文件路径中的子提取词
【发布时间】:2022-08-18 17:36:54
【问题描述】:
x = \"C:/2021_BCAA/20210376285/No_5009_22-32/No_330\"

我用

sub(\'.*/\', \'\', x)

获取\"No_330\",但我想获取\"No_5009_22-32\"

如何更改我的代码,谢谢。

    标签: r regex


    【解决方案1】:

    如果您要查找的所有名称都以 "No_" 模式开头,那么这应该可以解决问题:

    x <- "C:/2021_BCAA/20210376285/No_5009_22-32/No_330"
    stringr::str_extract(x, "No_.*(?=/)")
    

    【讨论】:

      【解决方案2】:

      不使用regex 的另一种解决方案:

      basename(dirname(x))
      # [1] "No_5009_22-32"
      
      strsplit(x, '/')[[1]][4]
      # [1] "No_5009_22-32"
      

      【讨论】:

        【解决方案3】:

        如果它总是在第三个/ 和第四个/ 之间,你可以使用这个:

        x = "C:/2021_BCAA/20210376285/No_5009_22-32/No_330"
        sub("^([^/]*/){3}([^/]+).*", "\\2", x)
        #> [1] "No_5009_22-32"
        

        创建于 2022-08-18,reprex v2.0.2

        【讨论】:

          猜你喜欢
          • 2010-10-01
          • 2019-06-03
          • 2013-06-08
          • 1970-01-01
          • 2019-01-06
          • 2016-06-19
          • 1970-01-01
          相关资源
          最近更新 更多