2016-07-18 3 views
1

저는 젠킨스를 사용하고 있으며 이름이 "_TEST"로 끝나는 모든 빌드 가능 작업을 일치시키고 싶지만 정규식을 통해 일치시킬 수는 없습니다.그루비를 사용하여 문자열의 끝을 일치 시키십시오

나는 여러 가지 방법을 시도했지만 groovy를 통해 일치시키지 못했습니다.

+1

입니다 당신은 당신이 시도한 코드를 추가 할 수 있습니까? 귀하의 질문에 정확하게 답할 수 있도록 도와 드리겠습니다. –

+0

정규식 또는 그루비? 그들은 그렇게 똑같지 않습니다! [Regex] (https://en.wikipedia.org/wiki/Regular_expression)는 문자열 검색/비교를 수행하는 표현식 구문입니다. [Groovy] (http://www.groovy-lang.org/)는 완전한 프로그래밍 언어입니다. – Andreas

+0

그루비 스크립트 내에서 정규 표현식을 사용하기 시작했습니다. 나중에 나는 ensWith() 함수를 가로 질렀다. 그것은 나를 위해 일했다. – Kithral

답변

1

등가하지만 this one보다 훨씬 더 간결 솔루션

import hudson.model.* 

def list = Hudson.instance 
       .items 
       .findAll { it.buildable && it.name.endsWith("_TEST") } 
       .collect { it.name } 
+0

나는 그 단순함을 좋아합니다. 나 한테 직업 명을 어떻게 줄 수 있니? 출력은 다음과 같습니다 : [email protected] [Build_Job_TEST] – Kithral

+0

새로운 답변을 작성하는 대신이 항목을 편집하여 각 항목을 해당 이름으로 변환하는 '수집'을 사용합니다. 스택 오버플로에 대한 코드를 설명하기 위해 서식이 약간 이상하고, 반드시 관용적 인 것은 아닙니다. –

0

사실 내 문제를 둘러싼 다른 방법을 발견했습니다. 죄송합니다, 월요일 아침 :

import hudson.model.* 

def list = [] 

for (item in Hudson.instance.items.findAll()) { 
    if (item.name.endsWith("_TEST")) { 
    if (item.isBuildable()) { 
     list.push(item.name) 
    } 
    } 
} 

return list 
+3

"그루비 웨이": Hudson.instance.items.findAll {it.isBuildable() && it.name.endsWith ("_ TEST")} ' –

관련 문제