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

R语言如何用stringr删除指定前缀并给匹配字符串追加.PR后缀

基于stringr包的R语言字符串处理方案

首先加载依赖包、定义原始向量:

library(stringr)
raw_vec <- c("BAAAVAST", "BAACEZ", "BAAGECBA", "LOL")

方案1:正则替换一步实现(最简洁)

直接用str_replace()匹配前缀并替换,未匹配的字符串自动保留原值:

result <- str_replace(raw_vec, "^BAA(.*)", "\\1.PR")
  • 正则说明:^BAA匹配字符串开头的"BAA"前缀,(.*)捕获前缀之后的所有字符
  • 替换逻辑:用\\1引用捕获的内容,直接拼接.PR后缀,无匹配的字符串不会执行替换

方案2:分步判断处理(逻辑更易理解)

先判断是否符合前缀要求,再对符合要求的字符串单独处理:

# 判断是否以BAA为前缀
has_prefix <- str_starts(raw_vec, "^BAA")
result <- ifelse(
  has_prefix,
  paste0(str_remove(raw_vec, "^BAA"), ".PR"),
  raw_vec
)

也可以用截取子串的方式删除前缀,等价实现:

result <- ifelse(
  str_starts(raw_vec, "^BAA"),
  paste0(str_sub(raw_vec, 4), ".PR"),
  raw_vec
)

两种方案最终输出都符合预期:

print(result)
# 输出:"AVAST.PR" "CEZ.PR"   "GECBA.PR" "LOL"

内容的提问来源于stack exchange,提问作者JEŠTĚR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:03