分割文件路径时导致意外内部错误的原因是什么?

时间:2017-08-18 14:33:15

标签: groovy jmeter

我正在尝试使用groovy在JMeter(3.2)中拆分文件路径并获得以下错误。

java.util.regex.PatternSyntaxException: Unexpected internal error near index
1
\
^

我能够使用Groovy split using file.seperator中提到的解决方案来解决问题,但我想知道为什么我会收到错误。

这就是我的代码看起来像

    \\executePath variable has C:\temp\somepath\anotherfolder\
    def aa = vars.get("executePath").split("\\\\");

2 个答案:

答案 0 :(得分:1)

据我所知,该错误只应在您分割为“\\”时出现,可能是因为它被读作正则表达式的转义符并且没有任何内容被转义。你确定你没有使用

split("\\")

当我尝试以下操作时,我得到了正确的输出

def bb = 'C:\\temp\\somepath\\anotherfolder\\'
def aa = bb.split('\\\\')
println aa
Output [C:, temp, somepath, anotherfolder]

你想通过拆分java的Path接口无法完成的文件路径来实现什么目标?

答案 1 :(得分:1)

  1. 使用Pattern.quote转义任何特殊字符
  2. 使用File.separator代替硬编码反斜杠,这样您的测试将与平台无关。
  3. 示例Groovy代码:

    import java.util.regex.Pattern
    
    def aa = vars.get('executePath').split(Pattern.quote(File.separator))
    
    aa.each {
        log.info ("${it}")
    }
    

    演示:

    Groovy split file path

    我还建议在JMeter中查看有关脚本编写的更多Groovy提示Groovy is the New Black