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

R语言正则:如何匹配大括号内的短横线并移除

在R语言中移除大括号内部的短横线

要实现只删除大括号{}内部的短横线-,可以借助R的gsub()函数结合环视(lookaround)正则表达式来精准定位目标字符,具体步骤如下:

1. 定义输入字符串

先把需要处理的字符串赋值给变量:

input_str <- "{EP03-C18} - {EP03-C19}"

2. 使用gsub()处理字符串

利用支持Perl风格正则的gsub(),通过环视规则精准匹配大括号内的-并替换为空:

output_str <- gsub("(?<=\\{[^}]+)-(?=[^}]+\\})", "", input_str, perl = TRUE)

运行这段代码后,output_str的结果就是你想要的:{EP03C18} - {EP03C19}

正则表达式解释

这里的正则(?<=\\{[^}]+)-(?=[^}]+\\})各部分含义:

  • (?<=\\{[^}]+):正向反向预查,确保当前位置前面是{加上任意数量非}的字符(也就是处于大括号内部)
  • -:我们要匹配并删除的短横线
  • (?=[^}]+\\}):正向预查,确保当前位置后面是任意数量非}的字符加上}(确保还在大括号内部)
  • perl = TRUE:开启Perl正则模式,这样才能支持环视语法

补充:处理多横线场景

如果你的字符串里有多个大括号内的横线(比如{EP03-C18-D20} - {EP04-E21}),这个正则也能一次性删除所有大括号内的-,适配性很强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:37:41