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

R语言使用str_extract提取省略号前后内容并剔除省略号的方法

R 省略号分隔字符串拆分方案

核心需求

将包含连续2个及以上省略号的字符串,拆分为省略号前后两个独立部分,拆分结果不保留省略号。

解决方案

方法1:直接用str_split拆分(最简洁)

直接以连续2个及以上的点作为分隔符拆分字符串,设置simplify = TRUE直接输出矩阵格式的两列结果:

# 示例字符串
a <- "60.4 (b)(33) and (e)(1) revised....................................46111"
# 拆分
res <- str_split(a, "\\.{2,}", simplify = TRUE)
# 提取前后部分
front_part <- res[,1]
back_part <- res[,2]

运行后:

  • front_part结果为:"60.4 (b)(33) and (e)(1) revised"
  • back_part结果为:"46111"

方法2:修改原str_extract正则(适配原有写法)

你之前的代码会保留省略号,是因为正则规则直接把连续点纳入了匹配范围,改用环视断言即可只匹配前后内容,不包含分隔用的点:

# 提取前半部分:匹配所有内容直到遇到连续2个及以上的点,不包含点
front_part <- str_extract(a, ".*?(?=\\.{2,})")
# 提取后半部分:匹配连续2个及以上的点之后的所有内容,不包含点
back_part <- str_extract(a, "(?<=\\.{2,}).*")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:57:02