开发者社区> 问答> 正文

正则表达式,如何match多层嵌套的括弧

有一个字符串,存在多对括号,他们可能是并列关系,也可能是嵌套关系,like this:
今年的雨水比较多(除了夏季(夏季天气炎热)),降雨量是往年的130%(特别是在江南地区)
现在要把最外层的第一对括号match出来,也就是要得到(除了夏季(夏季天气炎热))
正则表达式怎么写?

展开
收起
小旋风柴进 2016-06-01 10:04:38 2290 0
1 条回答
写回答
取消 提交回答
  • 正则没弄过,分析比较简单

        var sc = '(', ec = ')', count = 0, rst = [],c;
        var s = '今年的雨水比较多(除了夏季(夏季(天气)炎热)),降雨量是往年的130%(特别是在江南地区)'
        var l = s.length;
        for (var i = 0; i < l; i++) {
            c = s.charAt(i);
            if (c == sc && count == 0) rst[rst.length] = sc;
            if (count > 0) rst[rst.length - 1] += c;
            if (c == sc) count++;
            else if (c == ec) count--;
    2019-07-17 19:22:47
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载