Groovy 将括号中的输出筛选为列表

Groovy 将括号中的输出筛选为列表,groovy,devops,jenkins-groovy,Groovy,Devops,Jenkins Groovy,我有这样一句话: [Something-26543] One ticket [Something-23121] Second ticket [Something-21243] Third ticket and so on 有没有人能给我一个建议,如果有一种方法可以把方括号之间的那一行变灰。 之前: 过滤后: Something-26543 Something-23121 Something-21243 我写的是一个例子。注“asdfasdf”不在任何括号之间,因此不应匹配:

我有这样一句话:

   [Something-26543] One ticket
   [Something-23121] Second ticket
   [Something-21243] Third ticket and so on
有没有人能给我一个建议,如果有一种方法可以把方括号之间的那一行变灰。 之前:

过滤后:

Something-26543
Something-23121
Something-21243
我写的是一个例子。注“asdfasdf”不在任何括号之间,因此不应匹配:

 def changeString = ['[DPDHLPA-26607] Updating robots.txt', '[DPDHLPA-2321] [DPDHLPA-2322] Updating something.txt', 'asdfasdf']


 def TICKET_LIST = (changeString =~ /(?<=\[)[^]]+(?=\]/[0].readLines().unique().sort().join('\n')
        print TICKET_LIST //to see if it got the filtered list
def changeString=['[DPDHLPA-26607]更新robots.txt',[DPDHLPA-2321][DPDHLPA-2322]更新something.txt','asdfasdf']

def TICKET_LIST=(changeString=~/(?您应该能够执行以下操作:

def ticketList = changeString.findResults { str -> 
    (str =~ /\[([^]]+)].*/).with { 
        it.matches() ? it[0][1] : null
    }
}

您应该能够做到:

def ticketList = changeString.findResults { str -> 
    (str =~ /\[([^]]+)].*/).with { 
        it.matches() ? it[0][1] : null
    }
}

如何将其作为列表?这是一个列表。好的,很抱歉出现了noobish问题。我是否可以将trim()和标记化(\n)添加到此列表中。当前打印时,输出结果显示为一行:“[DPDHLPA-2321,DPDHLPA-26607]”。不是在groovy中的列表中,当您打印列表时,它被序列化为一行字符串,并用括号和逗号分隔。就像Tim Yates提到的,这是一个列表。
println([1,2,3])
->
[1,2,3]
println([1,2,3].getClass())
->
类java.util.ArrayList
如果要修剪:
def ticketList=changeStr.findResults{str->…}.collect{it.trim()}
如何将其作为一个列表?这是一个列表。好的,很抱歉这个问题。我是否可以将trim()和标记化(\n”)添加到此列表中。当前打印时的输出将其显示为一行:[DPDHLPA-2321,DPDHLPA-26607]”。不是在groovy中的列表中,当您打印列表时,它被序列化为一行字符串,并用括号和逗号分隔。就像Tim Yates提到的,这是一个列表。
println([1,2,3])
->
[1,2,3]
println([1,2,3].getClass())
->
class java.util.ArrayList
如果要修剪:
def ticketList=changeStr.findResults{str->…}.collect{it.trim()}