正则表达式Javascript发电机分割错误

时间:2018-07-19 22:18:00

标签: javascript regex random split multi-level

您好,当我尝试使用regexp从数学表达式中获取多级内容时,我的问题就开始了。

就像我这样说:

((V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1) && (V1 == V1)) 

我需要像这样从一个预生成的代码中进行多级拆分,其中我只能按()进行拆分,因为其他所有预生成的代码都是组件(V1)和运算符(&&,||,= <,=>)并且我无法使用它们来拆分cuz的操作和组件可能是任何值(在该操作中像10个操作,但是组件的值可能是它们生成的任何东西),期望在第一层是这样的:

ONE: (V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1) && (V1 == V1)

在第二层中,我想进行第一个主要操作,第二层是:

THW: (V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1)

THW: (V1 == V1)

因此,在每个可能的深层次中,例如在级别3中:

THREE: (V1 == V1 && V1 == V1)

This frist THREE LEVEL should be dragged from here in the full viewed:

((V1 == V1 "<-- this its the frist" && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1 "<-- this its the second one") && (V1 == V1)) 

THREE: (V1 == V1)

And this second from THREE LEVEL should be dragged from here in the full viewed:

((V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1) && (V1 == V1 "<-- and this one")) 

不管有多少个级别,问题都在发生……我如何将只有“(”和“)”的每一个人分开

这是我测试过的示例代码(“这不是生成它的示例,我只是为了测试拆分的东西而生成并复制了它,但是它应该与任何生成的表达式一起工作”):

var expressionToGenerateCode = '((V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1) && (V1 == V1))';

        /*var regExp = /[(](.*)[)]+/i;
        var regExpLevel2 = /[(.*)]+/i;
        var matches = expressionToGenerateCode.split(regExp);
        for(var i = 0; i < matches.length; i++){
            if (matches[i] != '') {
                var str = matches[i];
                console.log('ONE: '+ str);
                var matches_thw = str.split(regExpLevel2);
                for(var e = 0; e < matches_thw.length; e++){
                     var str2 = matches_thw[e];
                     console.log('THW: '+ str2);
                }
            }
        }

输出日志:

ONE: (V1 == V1 && (V1 == V1 && (V1 == V1 && (V1 == V1 && V1 == V1 && V1 == V1) && V1 == V1)) && V1 == V1) && (V1 == V1) ex-generator.aitssc.com:80:14
THW: ex-generator.aitssc.com:84:19
THW: V1 == V1 && 
ex-generator.aitssc.com:84:19
THW: V1 == V1 && V1 == V1 && V1 == V1 ex-generator.aitssc.com:84:19
THW:  && V1 == V1
ex-generator.aitssc.com:84:19
THW:  && ex-generator.aitssc.com:84:19
THW: V1 == V1 ex-generator.aitssc.com:84:19
THW: 

这不是一个容易解决的问题,我希望某些天才可以提供帮助,也可以提出任何想法或逻辑...我不认为要像示例代码中所说的那样输出它只是一个示例,我应该如何启动它,但是如果有人一个更好的主意,请提供您的解决方案,谢谢,祝您有个愉快的一天。

0 个答案:

没有答案