需要帮助使RegExp过滤器替换冗余的括号

时间:2016-04-24 11:32:17

标签: regex actionscript-3 intellij-idea actionscript

过去几天(几周,几个月,几年可能,如果你再次尝试重复搜索和尝试)我一直在尝试制作或找到一个RegEx过滤器来帮助我删除所有多余的括号我的代码。

附加了正则表达式过滤器必须处理的最坏情况。这是最好的情况

  

return((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ))+ getHumanReadableLine(“hasAudioEncoder”))+ getHumanReadableLine(“hasEmbeddedVideo”))+ getHumanReadableLine(“hasIME”))+ getHumanReadableLine(“hasMP3”))+ getHumanReadableLine(“hasPrinting”))+ getHumanReadableLine(“hasScreenBroadcast”)) + getHumanReadableLine(“hasScreenPlayback”))+ getHumanReadableLine(“hasStreamingAudio”))+ getHumanReadableLine(“hasStreamingVideo”))+ getHumanReadableLine(“hasTLS”))+ getHumanReadableLine(“hasVideoEncoder”))+ getHumanReadableLine(“isDebugger”))+ getHumanReadableLine (“language”))+ getHumanReadableLine(“localFileReadDisable”))+ getHumanReadableLine(“manufacturer”))+ getHumanReadableLine(“os”))+ getHumanReadableLine(“pixelAspectRatio”))+ getHumanReadableLine(“playerType”))+ getHumanReadableLine(“ screenColor“))+ getHumanReadableLine(”screenDPI“))+ getHumanReadableLine(”screenResolution X“))+ getHumanReadableLine(”screenResolutionY“))+ getHumanReadableLine(”version“)));

     
    

return((((name +“:”)+ Capabilities [name])+“\ n”));

  

正如你所看到的那样......我的代码中有一些......多余的括号。很长一段时间以来一直在积极地工作,但一直试图清理我遇到的事情,并一直试图找到一种更快的方法。

所以关于“干净”代码看起来如何的一个例子,我希望至少!

  

return(name +“:”+ Capabilities [name] +“\ n”);

     
    

返回姓名+“:”+功能[名称] +“\ n”;

  

只要代码本身没有模拟并改变它的工作方式,任何一个都可以完全诚实。

我非常感谢任何人都能给我的答案。请不要模仿我做或想要实现的目标。我之前没有使用正则表达式或类似的东西......

只是为了幽默你......这是我的“清洁”示例中的“RegExp”

  

(return)({1,}((。[^]] {1,}))(。{1,}))(。{1,})){1,}

     
    

$ 1 $ 2 $ 3 $ 4 //输出

  

哦...忘了提及

  

(!(testCrossZ()))

有时可能会出现,但如果需要,可以手动清理那些问题。

P.S ......多余的括号中出现“很多”......就像......可能有数千......很可能是数以千计。

2 个答案:

答案 0 :(得分:1)

不确定它是否适用于动作脚本,但对于Java,您可以执行:Main Menu | Analyze | Run Inspection by Name | type "parentheses" | select "Unnecessary parentheses" | run in the whole project and fix all problems

结果:

return getHumanReadableLine("avHardwareDisable") + getHumanReadableLine("hasAccessibility")
    + getHumanReadableLine("hasAudio") + getHumanReadableLine("hasAudioEncoder")
    + getHumanReadableLine("hasEmbeddedVideo") + getHumanReadableLine("hasIME")
    + getHumanReadableLine("hasMP3") + getHumanReadableLine("hasPrinting")
    + getHumanReadableLine("hasScreenBroadcast") + getHumanReadableLine("hasScreenPlayback")
    + getHumanReadableLine("hasStreamingAudio") + getHumanReadableLine("hasStreamingVideo")
    + getHumanReadableLine("hasTLS") + getHumanReadableLine("hasVideoEncoder")
    + getHumanReadableLine("isDebugger") + getHumanReadableLine("language")
    + getHumanReadableLine("localFileReadDisable") + getHumanReadableLine("manufacturer")
    + getHumanReadableLine("os") + getHumanReadableLine("pixelAspectRatio")
    + getHumanReadableLine("playerType") + getHumanReadableLine("screenColor")
    + getHumanReadableLine("screenDPI") + getHumanReadableLine("screenResolutionX")
    + getHumanReadableLine("screenResolutionY") + getHumanReadableLine("version");

答案 1 :(得分:0)

老实说,我还没有理解你想要的输出格式的确切形式,但根据初学者的说法,至少可以使用纯JavaScript来清除不必要的括号,如下所示。

var  text = 'return ((((((((((((((((((((((((((getHumanReadableLine("avHardwareDisable") + getHumanReadableLine("hasAccessibility")) + getHumanReadableLine("hasAudio")) + getHumanReadableLine("hasAudioEncoder")) + getHumanReadableLine("hasEmbeddedVideo")) + getHumanReadableLine("hasIME")) + getHumanReadableLine("hasMP3")) + getHumanReadableLine("hasPrinting")) + getHumanReadableLine("hasScreenBroadcast")) + getHumanReadableLine("hasScreenPlayback")) + getHumanReadableLine("hasStreamingAudio")) + getHumanReadableLine("hasStreamingVideo")) + getHumanReadableLine("hasTLS")) + getHumanReadableLine("hasVideoEncoder")) + getHumanReadableLine("isDebugger")) + getHumanReadableLine("language")) + getHumanReadableLine("localFileReadDisable")) + getHumanReadableLine("manufacturer")) + getHumanReadableLine("os")) + getHumanReadableLine("pixelAspectRatio")) + getHumanReadableLine("playerType")) + getHumanReadableLine("screenColor")) + getHumanReadableLine("screenDPI")) + getHumanReadableLine("screenResolutionX")) + getHumanReadableLine("screenResolutionY")) + getHumanReadableLine("version")));',
        r = /\(((getHumanReadableLine\("\w+"\)[\s\+]*)+)\)/g,
     temp = "";
while (text != temp) {
  temp = text;
  text = text.replace(r,"$1");
}
document.write('<pre>' + text + '</pre>');

从这一点开始,将简化文本转换为所需的输出格式应该不是什么大问题。