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

如何使用tidyverse与stringr在英文句点与数字间添加空格

实现方案

你可以用stringr包中的str_replace()/str_replace_all()函数配合正则表达式实现需求,只会匹配点后面紧跟数字的场景插入空格,不会修改人名缩写等其他场景的点符号,完整实现代码如下:

  1. 加载依赖包
# tidyverse内置stringr,直接加载即可
library(tidyverse)
  1. 构造示例数据
df <- data.frame(name1 = c("Acranthera sp.01", "Aglaia spectabilis (Miq.) S.S.Jain & Bennet", "Alyxia sp.11"))
  1. 核心处理逻辑
df_result <- df %>%
  mutate(name1 = str_replace(name1, "\\.(\\d)", ". \\1"))

逻辑说明

  • 正则\\.(\\d)中,\\.匹配字面量的点符号,(\\d)捕获点后紧跟的数字存入第一个捕获组\\1
  • 替换规则. \\1就是在点和捕获到的数字中间插入一个空格
  • 如果单条字符串存在多个「点+数字」的匹配场景,把str_replace换成str_replace_all即可处理所有匹配项
  1. 输出结果验证
df_result
#                                        name1
# 1                             Acranthera sp. 01
# 2  Aglaia spectabilis (Miq.) S.S.Jain & Bennet
# 3                                 Alyxia sp. 11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:57:03