从向量的每个元素中第二次出现“-”后面删除所有字符。

5

我想要删除向量中每个元素第二个连字符后的所有字符。

 Initial string  
 aa-bbb-cccc    =>    aa-bbb
 aa-vvv-vv      =>    aa-vvv
 aa-ddd         =>    aa-ddd

需要帮忙吗?

1个回答

8
根据示例输入和期望输出,我认为您需要删除所有以第二个连字符开头的内容。
您可以使用:
sub("^([^-]*-[^-]*).*", "\\1", x)

请查看正则表达式演示细节
  • ^ - 字符串的开始
  • ([^-]*-[^-]*) - 第1组捕获除-外的0个或多个字符,-和除-外的0个或多个字符
  • .* - 任何0个或多个字符(在TRE正则表达式中,点也匹配换行符)
\\1 (\1)是对第1组捕获文本的反向引用。
请参见R演示
x <- c("aa-bbb-cccc", "aa-vvv-vv", "aa-ddd")
sub("^([^-]*-[^-]*).*", "\\1", x)
## => [1] "aa-bbb" "aa-vvv" "aa-ddd"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接