2011-10-13 2 views
7

중첩 여부에 관계없이 표현식의 모든 인스턴스를 캡처하는 정규식이 있습니까?중첩 정규식 반환

예. /으로 시작하는 모든 문자열을 캡처하려면 /abc/def/ghi에 입력하십시오. 정규식 (/.*) 전체 문자열을 반환하지만 /def/ghi/ghi뿐만 아니라 일치하도록 싶습니다.

+0

흥미로운 주제를. 단지'/ abc','/ def'와'/ ghi'를 매치시키는 것이 당신이 찾고있는 것이 아니겠습니까? – Arjan

+0

@Arjan 아니, 그렇지 않아. 너무 쉬울 것입니다! (?은 (/.*) =) –

+1

내가'트릭도 참조 않습니다 [중복 일치]'찾기 [1] [1] : http://stackoverflow.com/q/320448/ 653295 – mousio

답변

8

물론, 빈 문자열과 일치하면 해당 캡처 그룹에 /.*을 캡처 한 후보고 미리 장소 :

Matcher m = Pattern.compile("(?=(/.*))").matcher("/abc/def/ghi"); 
while(m.find()) { 
    System.out.println(m.group(1)); 
} 

인쇄 것입니다 :

/abc/def/ghi 
/def/ghi 
/ghi 
관련 문제