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

如何实现仅按无尾随空格的逗号分割字符串?

解决方案:仅在逗号后无空格时分割字符串

我明白你想要的效果啦——只把逗号后面没有紧跟空格的地方作为分割点,而逗号后带空格的字符串就保持原样不拆分。这里用正则表达式的负向预查就能轻松实现,具体代码如下:

# 定义你的输入向量
input_strings <- c("aaa,aaa", "bbb, bbb", "ddd , ddd")

# 执行指定规则的分割
split_result <- strsplit(input_strings, ",(?!\\s)", perl = TRUE)

# 查看结果
split_result

代码解释

  • ,(?!\\s) 这个正则模式的含义是:匹配一个逗号,并且该逗号的后面不能是空白字符((?!...)是负向预查语法,用来排除符合括号内条件的情况)。不管逗号后面是单个空格还是多个空格,只要有空白就不会触发分割。
  • 必须添加perl = TRUE参数,因为R默认的正则引擎不支持预查语法,启用Perl兼容模式才能让这个正则生效。

运行这段代码后,你会得到完全符合预期的结果:

[[1]]
[1] "aaa" "aaa"

[[2]]
[1] "bbb, bbb"

[[3]]
[1] "ddd , ddd"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:09:16