当前位置:  开发笔记 > 编程语言 > 正文

删除向量的每个元素中第三次出现“-”之后的所有字符

如何解决《删除向量的每个元素中第三次出现“-”之后的所有字符》经验,为你挑选了1个好方法。

我对R中的正则表达式不太满意。我想在向量的每个元素中第三次出现“-”之后删除所有字符。

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

有什么帮助吗?



1> Wiktor Strib..:

从样本输入和预期输出来看,我假设您需要删除所有以第二个连字符开头的内容。

您可以使用

sub("^([^-]*-[^-]*).*", "\\1", x)

见正则表达式演示

详细资料

^ -字符串开始

([^-]*-[^-]*) -组1捕获0以外的其他字符--以及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"

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有