我正在努力删除字符串中下划线之前的子字符串。我想使用 * (通配符)作为下划线之前的位可以变化:
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