2017-10-24 8 views
0

하나의 인도 언어 (벵갈 어)에서 특정 단어 앞에 모든 단어를 가져 오려고합니다. 이 기술은 영어 완벽하게 작동하지만 벵골어 실패 : Regex 구문 분석에서 유니 코드를 처리하십시오.

Pattern p = Pattern.compile("([\\w\\s]+) ছবি", Pattern.UNICODE_CASE); 
Matcher m = p.matcher("ক্যামেরাকে ছবি তোলা এবং ভিডিও রেকর্ড এর অনুমতি দেবেন"); 

while (m.find()) { 
     System.err.println(m.group(1)); 
} 

그래서 이상적으로, 나는 텍스트 ছবি তোলা এবং ভিডিও রেকর্ড... 이전 인 출력으로 단어 ক্যামেরাকে를 얻기 위해 노력하고 있어요. 덧붙여 말하자면 이것은이 예에서 첫 번째 단어이지만, 사실이 아닐 수도 있습니다.

어떻게하면됩니까? 나는 안드로이드에서 이것을하려고 노력하고있다.

편집

자바 솔루션을 시도 여기지도 :

enter image description here

감사합니다! 벵골 문자에 대한

+1

어떤 오류가 있습니까? –

+0

@AmirHKH 출력을 전혀 얻지 못했습니다! –

+0

'\ p {InBeng}','Pattern.compile ("([\\ p {InBeng} \\ s] +) 시도해보십시오.")' –

답변

1

사용이 :

Pattern.compile("([\\p{IsBeng}\\s]+) ছবি", Pattern.UNICODE_CASE); 

\p{xxx}은뿐만 아니라 당신이 Is에 이름과 접두사를 알 필요가 스크립트를 들어, 카테고리 등의 문자 클래스를 많이 사용할 수 있습니다.

Pattern.compile("([\\w\\s]+) ছবি", Pattern.UNICODE_CHARACTER_CLASS); 

을 사용하지만이 어떤 알파벳에서 문자와 일치합니다 수도 있습니다, 그래서 당신이 정말로 필요 확실하지 않다.

+0

Android에서 첫 번째 솔루션을 사용해 보았습니다. 실패했습니다. isbeng에 대해 알려지지 않은 charecter 카테고리가 표시되었습니다. 지금 두 번째 시도! –

+0

@ Jeet.Deir 안드로이드에서'\ w'는 기본적으로 유니 코드를 인식합니다. 'Pattern.compile ("([\\ w \\ s] +) ছবি")'은 그대로 작동해야합니다. –

+0

@ WiktorStribiżew 나는 같은 생각. 그것은 안드로이드에 대한 작동하지 않습니다 –