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