使用gsub从字符串中删除模式

时间:2012-08-02 11:15:43

标签: r gsub

我正在努力删除字符串中下划线之前的子字符串。 我想使用*(通配符)作为下划线变化之前的位:

a <- c("foo_5", "bar_7")

a <- gsub("*_", "", a, perl = TRUE)

结果如下:

> a
[1] 5 7

我也试过像&#34; ^ * &#34;或&#34;?&#34;但是没有真正奏效。

4 个答案:

答案 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