Groovy 创建复杂的环境变量

Groovy 创建复杂的环境变量,groovy,jenkins-pipeline,Groovy,Jenkins Pipeline,在环境变量工作区之外,我需要提取最后一个'\'之后的部分字符串。例如,我有something1\something2\something3,我需要提取something3,并将其保存为Jenkins文件中的环境变量 我尝试过这种方法: groovy environment { service = "${(env.WORKSPACE).substring((env.WORKSPACE).lastIndexOf('\'), (env.WORKSPACE).length())}"

在环境变量工作区之外,我需要提取最后一个'\'之后的部分字符串。例如,我有
something1\something2\something3
,我需要提取something3,并将其保存为Jenkins文件中的环境变量

我尝试过这种方法:

groovy
environment {
        service = "${(env.WORKSPACE).substring((env.WORKSPACE).lastIndexOf('\'), (env.WORKSPACE).length())}"
    }
但在运行时,我发现一个错误:

WorkflowScript: 20: expecting ''', found '\n' @ line 20, column 113.
    (env.WORKSPACE).length())}"""
                                 ^

1 error

在Groovy和许多其他语言中,
\
是转义字符。因此,在lastIndexOf中,
'\'
打开一个字符串,然后转义结束的
'

您只需转义
\
(转义)

您也可以将其从字符串中取出,因为它已经是一个字符串:

service = env.WORKSPACE.substring(env.WORKSPACE.lastIndexOf('\\'), env.WORKSPACE.length())

应该足够了

我使用了第一个解决方案,效果很好。我还必须在开始索引中添加+1
service = env.WORKSPACE.substring(env.WORKSPACE.lastIndexOf('\\'), env.WORKSPACE.length())