我很困惑如何删除字符串中下划线前的子字符串。 我希望使用 *(通配符),因为下划线前的部分可能会变化:
a <- c("foo_5", "bar_7")
a <- gsub("*_", "", a, perl = TRUE)
结果应该看起来像这样:> a
[1] 5 7
我还尝试了"^*"或"?"之类的东西,但并没有真正起作用。
gsub(".*_", "", a)
或者,您也可以尝试以下方法:
gsub("\\S+_", "", a)
只是想指出,有一种使用tidyverse
函数的方法,我发现比gsub
更易读:
a %>% stringr::str_remove(pattern = ".*_")
as.numeric(gsub(pattern=".*_", replacement = '', a)
[1] 5 7