Использование regex
в base
вместе с for
l oop:
for (n in 1:lengths(regmatches("A/268/200/300/400/500" ,
gregexpr("/", "A/268/200/300/400/500")))) {
print(gsub(paste0("^(?:[^/]*\\K/){",n,"}.*"), "", "A/268/200/300/400/500", perl = TRUE))
}
#> [1] "A"
#> [1] "A/268"
#> [1] "A/268/200"
#> [1] "A/268/200/300"
#> [1] "A/268/200/300/400"
Первое решение:
В base
мы можем создать шаблон regex
и изменить n
(возможно в for-l oop) для получения желаемых результатов:
N <- lengths(regmatches("A/268/200/300/400/500" , gregexpr("/", "A/268/200/300/400/500")))
n <- 3
strsplit("A/268/200/300/400/500",paste0("([^/]+)(?:/[^/]+){",N-n,"}$"))
#> [[1]]
#> [1] "A/268/200/"