2014-10-07 3 views
0

match.group() 함수를 사용하는 정규식을 테스트하기위한 작은 프로그램이 있습니다. 이 함수는 그룹에 대해 마지막으로 일치 한 값에 대한 데이터 만 유지합니다. 모든 경기를 볼 수있는 방법이 있습니까?정규식 자바 캡처 그룹의 데이터를 덮어 씁니다

예를 들어, 나는 3 개 이상의 문자 모든 단어를 얻고 싶은, 그래서 내가 할 줄 :

(.*(\b\w{3,}\b).*)* 

내 텍스트가 나는 얻을

I'm a newbie with regex 

경우 :

0: [0,23] I'm a newbie with regex 
1: [0,23] I'm a newbie with regex 
2: [18,23] regex 

편집 : 내 코드는 여기에 있지만 출력은 http://www.regexplanet.com/advanced/java/index.html

입니다. (210 개)
Pattern RegexCompile = Pattern.compile(args[1]); 
Matcher m = RegexCompile.matcher(args[0]); 
for(int i=1; i<=m.groupCount(); i++){ 
    System.out.println("Group: "+ i + "pattern:" + m.group(i));   
} 

감사

+2

표시되는 출력을 "가져 오는"실제 코드를 보여주십시오. 그것 없이는 우리 모두가 추측하고 있습니다. –

답변

0

아니, 그 기능은 .NET에 대한 특정이다. Java regex에서 마지막으로 일치하는 그룹 만 캡처합니다. 자세한 내용은 내 비슷한 질문을 확인하십시오 Objective-C, regular expression match repetition

하지만 어쩌면 정규식이 작업을 수행하는 데 도움이되는 추가 코드를 작성할 수 있습니다. 마지막 발생과 일치시킬 수있는 반복을 만들 수 있으며, 일치를 찾을 때까지 해당 발생을 제외하고 일치를 반복 할 수 있습니다.

관련 문제