2016-10-09 2 views
-1

그래서 나는 정규 표현식에 비교적 새로운 오전 주지도 정수에 숫자의 삼중 일치 ... uptill 지금 내가 사용하고 정규 표현식 + 루프 :정규 표현식은 :

boolean match = false; int number =0; 

int number =0; 

String Str1 = String.valueOf(451999277); 

for (int i=0;match1 == false;i++) { 
     //check the pattern through loop 
      match1 = Pattern.matches(".*" + i + i + i + ".*", Str1); 
      number = i;// assigning the number (i) which is the triplet(occur 3 times in a row) in the givin int 

    } 

내 목표는 숫자를 찾을 수 있습니다 givin 정수의 삼중 체 예 :

"9"from 451999277; "9"는 3 번 즉, "999"가됩니다.

그러나 나는 단지 Regexp를 사용하는 솔루션이 있어야한다는 것을 확신합니다. 누군가가 저의 솔루션을 찾도록 도와 주면 좋을 것입니다. 그 첫 번째 이후

(\d)\1\1 

가 숫자와 일치합니다,이 경우 그룹 (숫자 1을 포착 .. 사전에 감사

답변

1

는 숫자와 일치하고 나중에 참조하기 위해 capturing group를 사용하여 정규 표현식의 그룹)을 찾은 다음 그룹 1에 속한 모든 것을 즉시 두 번 일치시킵니다.

Pattern regex = Pattern.compile("(\\d)\\1\\1"); 
Matcher regexMatcher = regex.matcher(subject); 
if (regexMatcher.find()) { 
    ResultString = regexMatcher.group(); 
} 

첫 번째 일치 항목은 subject (있는 경우)입니다.

+0

오! 많이 감사합니다. 선생님 ..... Java에서 Regexp을 배우기에 가장 좋은 자료를 알려주시겠습니까? –

+0

대단한 일반 정규 표현식 사이트에 대한 제 답변의 링크를 따르십시오. 정규식에 대한 Java 관련 문제에 대한 정보도 들어 있습니다. –