You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何删除字符串中冒号前的".数字"片段?

R语言匹配删除字符串中「. + 数字」片段的实现方案

核心实现代码

# 构造示例字符串向量
test_str <- c("ABCD.1:f_HJK", "ABFD.1:f_HTK", "CJD:f_HRK", "QQYP.2:f_HDP")

# 方案1:正向预查实现,需开启Perl正则支持
result <- gsub(pattern = "\\.\\d+(?=:)", replacement = "", x = test_str, perl = TRUE)

# 方案2:捕获组实现,无需Perl正则支持
result <- gsub(pattern = "\\.\\d+(:)", replacement = "\\1", x = test_str)

运行后输出结果为:

[1] "ABCD:f_HJK" "ABFD:f_HTK" "CJD:f_HRK"  "QQYP:f_HDP"

规则说明

  • \\.:匹配字面量点号,正则中.默认匹配任意单字符,因此需要加反斜杠转义,R字符串中反斜杠需要双重书写
  • \\d+:匹配1个及以上的连续数字
  • 方案1的(?=:)为正向肯定预查规则,仅当匹配到的.+数字片段后紧跟冒号时才命中匹配,且冒号不会被纳入匹配范围,替换时不会被删除
  • 方案2通过捕获组将匹配片段末尾的冒号单独留存,替换时仅保留冒号,实现删除.+数字片段的效果

内容的提问来源于stack exchange,提问作者pingu87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:57:06