2011-01-13 5 views
0

내 응용 프로그램은 내가 정규의 펀잡있는 Charactes을 제공하지만 내가 출력으로 "아니오"는 무엇입니까정규 표현식은

Pattern classPattern = Pattern.compile("\u0A00-\u0A7F "); 
    Matcher classMatcher = classPattern.matcher("ਭਾਸ਼ਾ ਸੰਦ"); 
      if (classMatcher.find()) { 
       System.out.println("yes"); 
      }else{ 
       System.out.println("no"); 
      } 

펀자 브어 (\ u0A00- \ u0A7F) 난 다음 시도 코드를 (지원)

어떤 아이디어?

+0

'[\ u0A00- \ u0A7F]'문자를 사용하는 대신'\ p {InGurmukhi}'를 사용하시지 않으시겠습니까? 이제는 매직 넘버 대신에 상징적입니다. 당신은 정규 표현식에서 또는 그것을 둘러싸고있는 문자 클래스의 일부로 그것을 단독으로 사용할 수 있습니다. – tchrist

답변

6

그 패턴은 "[\u0A00-\u0A7F ]"을해야 하는가? 네가 특정 순서로 4 개의 문자를 일치 시키려고하지만 정규 표현식에 6 개의 문자를 입력하는 것처럼 보입니다.

+0

에 속해 있는지 확인하십시오. 어리석은 실수로 괄호를 지우지 않았습니까; ( – Varun

1

"asdsa는"펀잡하지 않기 때문에 [당신이 pubjabi 문자를 찾습니다 준 패턴은이 DN ABC되지 않습니다]

+0

죄송합니다. 업데이트 된 질문 ... 업데이트 된 모든 것을 의미합니다. – Varun

+0

'[\ u0A00- \ u0A7F]'[a-zA-Z] \t a부터 z까지 또는 A부터 Z까지 (범위) '이 모든 문자가 제공된 범위 –

3
[\u0A00-\u0A7F ]* 

별표가 없으면 하나의 문자 만 일치하게됩니다. *+으로 바꿀 수 있습니다. 그러면 빈 문자열이 허용되지 않습니다.

Pattern class JavaDocs을 살펴보십시오. regexes를 빠르고 정확하게 이해하는 것이 매우 유용합니다.

+0

nice link thanks – Varun