2012-10-19 5 views
0

아래 자바 코드 행이 있습니다.자바에서 일치하는 문자열 정규 표현식?

  String string1 = "SAMPLE STRING"; 
      String string2 = "SAMPLE*"; 

      string2 = string2.replaceAll("\\*",".*").trim().toUpperCase(); 

      if(string1.matches(string2)){ 
       System.out.println("true"); 
      }else{ 
       System.out.println("false"); 
      } 

여기서는 정규식의 의미를 이해하지 못합니다. 무슨 뜻이에요? 아무도 나를 도울 수 있습니까?

감사합니다.

+2

당신의 문서를 통해 갈 수 있습니다 : - ['패턴 Class' (http://docs.oracle.com/javase/7/ docs/api/java/util/regex/Pattern.html) –

답변

2

여기 정규식은 "\\*"이며 단순히 *을 의미합니다. 여기서 replaceAll()string2의 모든 * 문자를 .*으로 바꿉니다.

사람들이 단순 정규식 (예 : *.exe)을 사용하여 Java에서 사용되는 정규식 인 PCRE regex으로 바꾸는 것이 일반적입니다.

0

정규식는 \ "*"단순히 *. 문자열 2에 적용될 때 "는 '= 완전히 대체()에 의해 SAMPLE는 문자열 2 샘플 된 수단이 다시 일치 Matcher를 사용하는 정규 표현식()이다.

"SAMPLE. *"단순 "샘플"

따라서, "샘플 스트링은"일치 하였다 모두 수락 "샘플. *".

마찬가지로 "SAMPLE", "SAMPLE 123SSS", "SAMPLE"등이 일치합니다. 는 그러나 "SAMPLE 문자열은"패턴 "SAMPLE을 *."일치하지 않습니다

관련 문제