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

如何基于末尾数字条件按分号分割R语言字符串?

问题:R语言按字符串末尾数字分割字符串

我现在用R语言处理这类格式的字符串:

"a1_1;a1_2;a1_5;a1_6;a1_8" "two1_1;two1_4;two1_5;two1_7"

我的需求是:把每个字符串按照末尾数字是否小于7分割成两个字符串。拿上面的例子来说,期望输出是:

"a1_1;a1_2;a1_5;a1_6" "a1_8" 和 "two1_1;two1_4;two1_5" "two1_7"

我自己尝试了下面这段代码,但没成功:

x <- "a1_1;a1_2;a1_5;a1_6;a1_8"
str_split("x", "(\\d<7);")

之前有朋友给了我这样一个函数,但我发现它没办法处理分号前后都包含数字的情况,我试着修改了几次,还是没得到正确结果:

f1 <- function(strn) { strsplit(gsubfn("(;[A-Za-z]+\\d+)", ~ if(readr::parse_number(x) >= 7) paste0(",", sub(";", "", x)) else x, strn), ",")[[1]] }

请问我需要怎么修改代码,才能实现我想要的分割效果?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:24:10