R sub在角色的最后一次出现之前提取所有内容

时间:2018-01-22 14:51:41

标签: r

我有以下向量c:

ABC-XXX
DEF-4-YYY

我想在' - '的最后一次出现之前提取所有内容,这意味着我会保留这个

ABC
DEF-4

我尝试了以下内容:

sub([-].*, '', "DEF-4-YYY")

但这会取代第一个' - '之后的所有内容,而它应该寻找最后的' - '。上述命令的输出是:

"DEF"

这里有什么问题?

2 个答案:

答案 0 :(得分:4)

我们可以通过匹配.csproj后跟零个或多个不是sub的字符直到字符串结尾(-)来替换-并替换$它带有空白(''

sub('-[^-]*$', '', v1)
#[1] "ABC"   "DEF-4"

数据

v1 <- c('ABC-XXX', 'DEF-4-YYY')

答案 1 :(得分:2)

如果您愿意,可以使用stringr包

replace('  ', ' ');