R语言:如何移除指定前缀、HD数字字段及.csv后缀提取字符串?
解决方案
针对你的需求,我们可以通过一次正则替换完成所有内容的清理,直接得到目标结果:
代码实现
# 原始字符串向量 x <- c("Euka_20220607_HD1_Swift_121_h3417.csv", "Euka_20220608_HD32_Swift_5426_h87.csv") # 正则替换所有需要移除的内容 cleaned <- gsub("^Euka_|_HD\\d+|\\.csv$", "", x) # 输出结果 cleaned
输出结果
[1] "20220607_Swift_121_h3417" "20220608_Swift_5426_h87"
正则说明
正则表达式^Euka_|_HD\\d+|\\.csv$各部分含义:
^Euka_:匹配字符串开头的Euka__HD\\d+:匹配_+HD+ 一个或多个数字的组合\\.csv$:匹配字符串结尾的.csv后缀|:逻辑或,同时匹配上述三种模式并替换为空
问题原因
你之前的代码只处理了Euka_和.csv后缀,没有匹配并移除HD[\d+]对应的部分,所以结果中仍保留了_HD1这类内容。
内容的提问来源于stack exchange,提问作者user20137369
相关产品推荐
相关产品推荐

