gpt4 book ai didi

使用多个分割字符时删除字符串的特定部分

转载 作者:行者123 更新时间:2023-12-02 09:20:28 26 4
gpt4 key购买 nike

我已经阅读了一些有关删除和拆分字符串的问答,但我没有遇到过通过拆分特定字符(当该字符在字符串中多次使用时)来删除部分的情况。例如,

 V <- c("TUAA_2124_5733", "GAMS_1236_4767")
V1 <- sapply(strsplit(V, split='_', fixed=TRUE), function(x) (x[2]))
V1
V1 [1] "2124" "1236"

此部分删除由下划线分隔的第一部分和最后一部分。

 sapply(strsplit(V, split='_', fixed=TRUE), function(x) (x[2]))

如何保留最后两个部分(2124_5733 和 1236_4767),并用下划线分隔,同时仅删除第一部分(TUAA 和 GAMS)。

谢谢!

最佳答案

gsub 将使用正确的正则表达式来执行此操作。

gsub("^.*?_", "", V)
[1] "2124_5733" "1236_4767"

这个表达式可以这样理解:

开头的 ^ 表示字符串的开头。
。表示任何字符,.* 表示任何字符的零个或多个实例。但是,默认值是“贪婪匹配”,因此 .* 将匹配直到最后一个 _ 的所有字符。我们想要第一个,所以我们使用 .*? 来抑制贪婪匹配,并且只匹配第一个 _。因此,将所有内容放在一起,^.*?_ 从字符串的开头开始,匹配任意数量的字符,直到并包括第一个 _。这些都被替换为空。

关于使用多个分割字符时删除字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43058599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com