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

如何编写JavaScript正则删除@包裹内容外的所有小括号

实现方案

核心逻辑是优先匹配并保留两个@包裹的完整片段,其余场景的(、)直接删除,利用JavaScript字符串replace方法的回调函数做分支判断即可实现需求。

正则表达式

/(@[^@]*@)|[()]/g

完整可运行代码

const originalStr = "( [15] == @value 1@ || [15] == @value 2@ )  &&  ( [5] == @value 3 (ignore these)@ || [5] == @value 4@ )  ||  ( [2] == @value 5@ )";
const processedStr = originalStr.replace(/(@[^@]*@)|[()]/g, (match, group1) => {
  // 匹配到@包裹的片段直接返回原内容
  if (group1) return group1;
  // 其余匹配到的括号直接返回空删除
  return '';
});
console.log(processedStr);

输出结果

[15] == @value 1@ || [15] == @value 2@  &&  [5] == @value 3 (ignore these)@ || [5] == @value 4@  ||  [2] == @value 5@ 

规则说明

  • (@[^@]*@):第一捕获组,匹配成对@之间的所有内容,[^@]*保证不会跨多个@片段匹配
  • |:逻辑或,同时匹配两种规则的内容
  • [()]:匹配单个左括号或右括号
  • g:全局匹配标识,处理字符串中所有符合规则的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:04