Jenkins管道groovy在变量中存储匹配的正则表达式字符串
我在一个Jenkins管道groovy在变量中存储匹配的正则表达式字符串,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,我在一个jenkinsfile中有一个字符串,我正试图基于该字符串的正则表达式匹配创建一个新变量。例如: def stringA = "Hello World Today" def stringB = stringA =~ /Hello/ echo stringB 我希望在控制台中看到Helloecho,但我只得到似乎是对regex对象的引用 在这种情况下,stringB确实会被分配一个正则表达式对象的值。您需要使用该语法来捕获正则表达式中的子字符串。这是Groovy和大多数其他解释语言中
jenkinsfile
中有一个字符串
,我正试图基于该字符串的正则表达式匹配创建一个新变量。例如:
def stringA = "Hello World Today"
def stringB = stringA =~ /Hello/
echo stringB
我希望在控制台中看到Hello
echo,但我只得到似乎是对regex对象的引用
在这种情况下,
stringB
确实会被分配一个正则表达式对象的值。您需要使用该语法来捕获正则表达式中的子字符串。这是Groovy和大多数其他解释语言中的()
:
def stringB = stringA =~ /(Hello)/
此时stringB
的值将是一个嵌套数组,其中每个元素都是一个数组,其中包含正则表达式中每个()
的匹配子字符串的值。在这种情况下,只有一个()
,因此我们访问第0个元素,然后访问包含匹配子字符串的嵌套元素,即1处的元素:
print stringB[0][1]
这将返回Hello