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

use*_*113 27 r gsub

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

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

a <- gsub("*_", "", a, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

> a
[1] 5 7
Run Code Online (Sandbox Code Playgroud)

我也试过像"^*"或"? "这样的东西但是没有真正起作用.

Pop*_*Pop 52

以下代码适用于您的示例:

gsub(".*_", "", a)
Run Code Online (Sandbox Code Playgroud)

  • '' 代表任何字符,因此".*"代表任何数字的任何字符.您可以输入`?regex`找到更多解释. (4认同)

Mad*_*een 7

或者,您也可以尝试:

gsub("\\S+_", "", a)
Run Code Online (Sandbox Code Playgroud)