替换嵌套括号中的内容

2024-02-25

Input = ABCDEF ((3) abcdef),GHIJKLMN ((4)(5) Value),OPQRSTUVW((4(5)) Value (3))

预期输出 =ABCDEF,GHIJKLMN,OPQRSTUVW

到目前为止尝试过

Output = Input.replace(/ *\([^)]*\)*/g, "");

在这里使用正则表达式可能无法工作或无法扩展,因为您期望nested输入字符串中的括号。当输入有已知且固定的结构时,正则表达式效果很好。相反,我建议您使用parser。在下面的代码中,我迭代输入字符串,一次一个字符,并使用计数器来跟踪有多少个左括号。如果我们在括号内,那么我们不会记录这些字符。我最后还有一个简单的替换来删除空格,这是您的输出暗示的额外步骤,但您从未明确提及。

var pCount = 0;
var Input = "ABCDEF ((3) abcdef),GHIJKLMN ((4)(5) Value),OPQRSTUVW((4(5)) Value (3))";
var Output = "";
for (var i=0; i < Input.length; i++) {
    if (Input[i] === '(') {
        pCount++;
    }
    else if (Input[i] === ')') {
        pCount--;
    }
    else if (pCount == 0) {
        Output += Input[i];
    }
}

Output = Output.replace(/ /g,'');
console.log(Output);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换嵌套括号中的内容 的相关文章