【发布时间】: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\"
如何更改我的代码,谢谢。
x = \"C:/2021_BCAA/20210376285/No_5009_22-32/No_330\"
我用
sub(\'.*/\', \'\', x)
获取\"No_330\",但我想获取\"No_5009_22-32\"
如何更改我的代码,谢谢。
如果您要查找的所有名称都以 "No_" 模式开头,那么这应该可以解决问题:
x <- "C:/2021_BCAA/20210376285/No_5009_22-32/No_330"
stringr::str_extract(x, "No_.*(?=/)")
【讨论】:
不使用regex 的另一种解决方案:
basename(dirname(x))
# [1] "No_5009_22-32"
strsplit(x, '/')[[1]][4]
# [1] "No_5009_22-32"
【讨论】:
如果它总是在第三个/ 和第四个/ 之间,你可以使用这个:
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
【讨论】: