>source

REGEX 유효성 검사를 기반으로 Groovy Jenkins 파이프 라인에서 예상대로 발생하지 않는 값을 설정하려고합니다. 버전 = 1.1.1 또는 1.5.9 또는 9.9.9이면 1.22.9 또는 1.99.9 ... tmp 저장소와 같은 관리 저장소 여야합니다. 아래는 내가 시도한 것입니다.

String artefact_bucket_name
def artefact_version = "1.99.0"
if (artefact_version ==~ /[0-9]{1}\.[0-9]{1}\.[0-9]{1}/) {
 artefact_bucket_name = "managed-artefact-store"
}
if (artefact_version ==~ /[0-9]{1}\.[0-9]{1,2}\.[0-9]{1}/) {
 artefact_bucket_name = "tmp-artefact-store"
}
echo "Application version to deploy is ${artefact_version} from Artefact store ${artefact_bucket_name}"

  • 답변 # 1

    첫 번째 정규식을 재정의하는 두 번째 정규식에 실수가있는 것 같습니다. 예 : 너가 가질 때 artefact_version = 1.1.1 -첫 번째 정규식 및 두 번째 정규식도 일치하므로 항상 tmp-artefact-store .

    두 번째 정규식을 다음과 같은 문자열과 일치하도록 변경합니다.

    /[0-9]{1}\.[0-9]{2}\.[0-9]{1}/ -내가 바뀐 걸 알아 {1,2} 에게만 {2} . 이것은 "\ d. \ d \ d. \ d"와 같은 문자열과 독점적으로 일치하므로 버전은 다음과 같습니다. 1.1.1 첫 번째 정규식 및 버전과 만 일치합니다. 1.99.9 -단 두 번째

관련 자료

  • 이전 Oracle SQL PIVOT "모호하게 정의 된 열"
  • 다음 javascript - nodejs 오류 - 첫 번째 nodejs 애플리케이션