Regex 删除字符

Regex 删除字符,regex,r,string,Regex,R,String,我有一个字符向量 var1 <- c("pine trees", "dense forest", "red fruits", "fruit's colors") var1您可以使用gsub gsub("s$", "", var1) 编辑:对已编辑问题的回答 在问题被编辑之后,我的第一个解决方案起了作用,但效果不好,结果我的第一个解决方案更糟。也许这段代码可以解决这个问题 gsub("'s|s$", "", var1) var1这个怎么样 gsub("\\'s|s$","",var1)

我有一个字符向量

var1 <- c("pine trees", "dense forest", "red fruits", "fruit's colors")
var1您可以使用gsub

gsub("s$", "", var1)
编辑:对已编辑问题的回答 在问题被编辑之后,我的第一个解决方案起了作用,但效果不好,结果我的第一个解决方案更糟。也许这段代码可以解决这个问题

gsub("'s|s$", "", var1)
var1这个怎么样

gsub("\\'s|s$","",var1)
(创建一个答案而不是一个comment.Admins-如果您觉得有必要,将其移动到comments)

对于大约7个月前的同一个问题,我得出了以下逻辑:

  • var1
    中的所有字符串拆分为单独的单词、取消列表、全部删除 数值,整理一下
  • 仅选择结束的单词 带有
    s
  • 分两次浏览列表:a)针对 字典,例如,启用2K以查看是否存在纯打字错误,b)手动删除以
    s
    结尾的正确单词
    3b当然是乏味的,但它减少了“破坏”好词的高几率。

    那么“水果的颜色”呢?
  • ?我没有看到它,因为它不在那里。这个问题是在我的回答之后编辑的。OP的例子与这个问题相矛盾,因为它不是关于复数的。如果它不是关于复数的,特别定制的答案无论如何都不会有用。@ SabDEND,不,它的目的是要去除多元性,那么为什么水果会变成水果呢?你可能会把“ReGEX”看作是这样的问题的标签。只要注意用“<代码> S/<代码>结束的适当的奇异词。(例如,class、floss,甚至jeans)将受到所有建议解决方案的影响。您能告诉我们为什么要这样做吗?因此您确实需要一个更强大的解决方案。例如,您不想将总线转换为总线。在我的操作系统中,
    不需要转义。是否需要转义它?
    var1 <- c("pine trees", "dense forest", "red fruits", "fruit's colors")
    
    gsub("'?s\\b", "", var1)
    
    #"pine tree"    "dense forest" "red fruit"    "fruit color"
    
    gsub("\\'s|s$","",var1)