2014-08-31 3 views
0

숫자 패턴을 일치 시키려고합니다. 처음 두 자릿수는 25입니다. 예를 들어 숫자가 더 많을 수 있습니다. 이를 위해 25, 253, 2599, 255패턴 일치 일치하지 않음

은 내가

Pattern myPattern = Pattern.compile("[2][5]*"); 
if(myPattern.matcher("25").matches()) { 
} 

if(myPattern.matcher("253").matches()) { 
} 

처럼 쓴하지만 항상 false를 반환합니다. 내 패턴에 어떤 문제가 있는지 잘 모르겠습니다. 당신의 정규식 [2][5]* 잘못 무엇

답변

2

당신은 아래 정규식을 시도 할 수,

"25\\d*" 

먼저는 2 다음 그것은 단지 숫자 5 0 번 이상 일치 일치합니다. 그러나 \d*은 0 번 이상 0 번 이상 일치합니다. 내가 제안하고 싶은

System.out.println("25".matches("25\\d*")); 
System.out.println("253".matches("25\\d*")); 
1

String.matches("25\\d*") 

enter image description here

으로 시도하거나 당신이 @avinashraj에 의해 제안 된 정규식을 사용하여이 문제를 해결 할 수 있지만 당신은 CAU는

String.startsWith("25") 
3

를 사용 String#startsWith을 사용하는 더 나은 해결책은 여기에 정규식이 필요하지 않습니다.

if(myString.startsWith("25")) { 
    //... 
}