删除R中字符串末尾的连字符

Remove hyphen at the end of string in R

我在 R 中有一列数据框,如下所示:

names <- data.frame(name=c("ABC", "ABC-D", "ABCD-"))

我想删除字符串末尾的连字符,同时保留字符串中间的连字符。我尝试了一些表达方式,例如:

names$name <- gsub("+-\w", "", names$name)
# the desired output is "ABC", "ABC-D", and "ABCD", respectively

虽然有几种组合完全删除了连字符,但我不确定如何同时指定字符串边界和连字符。

谢谢!

尝试:

gsub("\-$", "", names$name)
# [1] "ABC"   "ABC-D" "ABCD" 

$ 告诉 R (转义的)连字符在单词

的末尾

不过,由于 - 位于 regex 的第一位,因此您无需转义它,因此这也适用:

gsub("-$", "", names$name)
#[1] "ABC"   "ABC-D" "ABCD"