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

R语言字符串处理:提取Blume前内容删除Blume及之后字符

解决方案

使用stringr包的str_remove()函数配合正则表达式即可实现需求:匹配每个字符串中Blume及其前后不需要的内容并删除,无Blume的字符串不会被修改,完全符合要求。

完整可运行代码

# 若未安装stringr先执行:install.packages("stringr")
library(stringr)

# 构造示例数据框
df <- data.frame(x = c("Santiria laevigata Blume f. laevigata", 
                       "Santiria laevigata", 
                       "Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam"))

# 处理x列
df$x <- str_remove(df$x, "\\s*Blume.*")

# 输出结果
print(df)

运行结果

x
1 Santiria laevigata
2 Santiria laevigata
3 Santiria laevigata

规则说明

正则表达式\\s*Blume.*的匹配逻辑:

  • \\s*:匹配Blume前的0个或多个空格,避免处理后字符串末尾残留空格
  • Blume:匹配固定字符Blume
  • .*:匹配Blume之后的所有任意字符

如果不想加载第三方包,用R原生函数也可以实现,写法如下:

df$x <- sub("\\s*Blume.*", "", df$x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:48:03