2015-01-05 3 views
0

어떻게 아래 정규식 그룹을 캡처 할 수 있습니까? 현재 일반 문자열 분리로 GAV를 캡처하고 있습니다. groovy/java를 사용하고 있습니다.정규식을 사용하여 maven 이슈 경로를 GAV로 변환

시료 입력 :

repo1-cache/org/eclipse/jetty/jetty-server/7.1.0.RC1/jetty-server-7.1.0.RC1.jar 

샘플 출력 :

Group 1: org/eclipse/jetty 
Group 2: jetty-server 
Group 3: 7.1.0.RC1 

입력 샘플 2 :

jboss-cache/antlr/antlr/2.7.7/antlr-2.7.7.jar 

출력 샘플 2 :

Group 1: antlr 
Group 2: antlr 
Group 3: 2.7.7 

답변

0

당신은 다음 요소를 액세스하는 데 사용할 수있는 Array (나는 메이븐 (Maven)을 몰라)를 반환한다고 가정하면 아래를 간단히 사용할 수 있습니다.

/(?<=\()([^)]+(?=\))/g 
+0

. 내가 잡고 싶은 그룹을 보여주고 싶었습니다. 입력에는 괄호가 없습니다. 내 질문을 수정했습니다. – ceilfors

0

정규 표현식을 사용하지 않는 동안 maven 인덱서가 사용하는 것과 동일한 논리를 사용하여 gavs의 경로를 구문 분석 할 수 있습니다. Maven 2 리포지터리의 경우 로직은 M2GavCalculator에서 사용할 수 있습니다. Maven 1 리포지토리의 경우 로직은 M1GavCalculator에서 사용할 수 있습니다.

당신은 당신의 프로젝트에이를 가져올 수 있어야합니다 : 내 샘플 입력에 실수를

<dependency> 
    <groupId>org.apache.maven.indexer</groupId> 
    <artifactId>indexer-core</artifactId> 
    <version>5.1.1</version> 
</dependency> 
관련 문제