我正在努力删除字符串中下划线之前的子字符串。 我想使用*(通配符)作为下划线变化之前的位:
a <- c("foo_5", "bar_7")
a <- gsub("*_", "", a, perl = TRUE)
结果如下:
> a
[1] 5 7
我也试过像&#34; ^ * &#34;或&#34;?&#34;但是没有真正奏效。
答案 0 :(得分:47)
以下代码适用于您的示例:
gsub(".*_", "", a)
答案 1 :(得分:7)
或者,您也可以尝试:
gsub("\\S+_", "", a)
答案 2 :(得分:0)
只需指出,有一种使用tidyverse
中的函数的方法,我发现它比gsub
更具可读性:
a %>% stringr::str_remove(pattern = ".*_")
答案 3 :(得分:-3)
as.numeric(gsub(pattern=".*_", replacement = '', a)
[1] 5 7