需求:实现RemoveError函数移除含Error的括号及内部内容
实现RemoveError函数的解决方案
核心思路
用正则表达式匹配并移除所有包含"Error"的括号(及内部内容),针对非嵌套括号场景可直接通过全局替换完成需求。
代码实现(JavaScript)
function RemoveError(str) { // 匹配包含Error的括号对,支持不区分大小写,全局替换为空后整理多余空格 return str.replace(/\([^()]*Error[^()]*\)/gi, '').trim().replace(/\s+/g, ' '); } // 测试示例 const testStr = "Lorem Ipsum (Status: Hello) (Error: 14) (Comment: Some text)"; const Result = RemoveError(testStr); console.log(Result); // 输出:Lorem Ipsum (Status: Hello) (Comment: Some text)
正则表达式说明
\(:匹配左括号(转义是因为括号在正则中属于特殊字符)[^()]*:匹配任意非括号的字符(0个或多个),确保不会跨括号匹配其他内容Error:目标关键词,搭配i修饰符支持不区分大小写(比如"error"、"ERROR"也会被识别)\):匹配右括号gi:g表示全局替换所有匹配项,i表示不区分大小写
注意事项
如果你的业务场景中存在嵌套括号(比如(Outer (Error: 123) Content)),上面的正则无法正确处理——因为[^()]*会在遇到第一个右括号时终止匹配。这种情况需要通过栈结构遍历字符串,手动识别完整的括号对后再判断是否包含"Error"。
内容的提问来源于stack exchange,提问作者Øyvind Isaksen
相关产品推荐
相关产品推荐

