2014-01-06 5 views
2

자바 정규식 패턴에 대한 간단한 질문! 내가 좋아하는 방법이 있다면 그래서이를 실행 한 경우Java 정규식 패턴 쿼리

public void example() 
    { 
     Pattern p = Pattern.compile("\\d*"); 
     Matcher m = p.matcher("ab34ef"); 
     boolean b = false; 
     while (b = m.find()) 
     { 
     System.out.println(m.start() + " " + m.group()); 
     } 
    } 

나는 다음과 같은 출력으로 끝낼 것이다 ..라고 ..

 0 
    1 
    2 34 
    4 
    5 
    6 

을 나는이 그것에서 끝나는 방법에서 떨어져 작동 방식을 이해 6, 내가 5라고 끝낼 줄 알았는데 누군가 나에게 설명해 줄 수 있니? 감사!

+0

6은 끝에 빈 문자 용입니다. –

+2

BTW는'b'가 완전히 중복되었습니다. 당신은 결코 그것을 읽지 않습니다. –

답변

3

문자열에 "ab34ef"에는 "공백 문자"가 7 개 있으며 "" 값이 있습니다. 그들은 각각의 일반 문자 사이에 위치합니다. 각 공백 문자 문자로 시작하는 일치를 찾으므로 각 일반 문자가 아닙니다. 즉 각각 |의 위치는 "|a|b|3|4|e|f|"입니다.

+0

아! 알았다! 훌륭한! 감사! :) – bdavies6086

+0

@ user3087397 괜찮습니다. 다행스럽게 도울 수있어! –