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

如何在R语言中使用正则表达式在两个标点字符间添加空格?

问题分析与解决

你的代码无法正常工作的核心原因是替换字符串中的\\s不会被解析为空格——\\s是正则匹配模式里用来匹配空白字符的 shorthand,但在str_replace的替换模板中,它会被当成字面量的\s输出,而不是实际的空格。

修正后的代码

直接在替换模板里用空格代替\\s即可:

library(stringr)
s <- "-+"
str_replace(s, "([:punct:])([:punct:])", "\\1 \\2")

运行这段代码会输出:"- +",正好满足你在两个标点间加空格的需求。

更精准的匹配(可选)

如果你的需求只是针对-和+这两个特定标点,而非所有标点符号,可以把正则表达式改成更精准的模式,避免误匹配其他标点组合:

str_replace(s, "([-+])([-+])", "\\1 \\2")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:55:22