删除最后一个特殊字符

时间:2018-08-23 05:47:44

标签: r regex gsub

我想从数据框列中删除最后一个“ /”(特殊字符)。

例如,有2个条目

.read(byte[] dest, Int offset, Int length)

例如,文本中间可以有多个“ /”: 1. "/mobile_phones" and 2. "/mobile_phones/".

我只想删除最右边的'/'。

我尝试了以下gsub查询

"/accessories-bandanas_and_headbands/womens/"

2 个答案:

答案 0 :(得分:4)

这是一个简单的正则表达式。请注意,您不需要转义'/',它不是特殊字符。

x <- c("/mobile_phones", "/mobile_phones/", "/accessories-bandanas_and_headbands/womens/")
sub("/\\s*$", "", x)
#[1] "/mobile_phones"                            
#[2] "/mobile_phones"                            
#[3] "/accessories-bandanas_and_headbands/womens"

还请注意,由于仅删除一个字符,sub会完成任务,因此gsub应该保留给模式多次出现。

答案 1 :(得分:3)

由于您只对最后一个/感兴趣,因此您将调用$,该字符串指示字符串在符号/之后结束。另外,您不需要使用gsub。您可以使用sub,因为您只需要替换每一行中的一件事

vec=c("/mobile_phones",
  "/mobile_phones/",
  "/accessories-bandanas_and_headbands/womens/")

sub("/$","",vec)
[1] "/mobile_phones"                             "/mobile_phones"                            
[3] "/accessories-bandanas_and_headbands/womens"