Я хочу знать, что текст содержит любое письмо на урду или арабском языке .. используя это условие, которое приводит к ложным результатам при появлении специальных символов. Каков правильный способ сделать это. Любая библиотека или для чего это правильное регулярное выражение?Как узнать текст на арабском языке или на урду
if (cap.replaceAll("\\s+", "").matches("[A-Za-z]+")
|| cap.replaceAll("\\s+", "").matches("[A-Za-z0-9]+")) {
Log.d("isUrdu", "false");
caption.setTypeface(Typeface.DEFAULT);
caption.setTextSize(16);
} else {
Log.d("isUrdu", "True");
/* if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR1) {*/
caption.setTypeface(typeface);
caption.setTextSize(20);
/* }*/
}
Я думаю, что вам нужно преобразовать символ в UTF, а затем сравнить его с кодом урду и арабского символа. –
Попробуйте 'if (cap.matches (" (? S). * [\\ p {Arabic} \\ u0600 - \\ u06FF \\ u0750 - \\ u077F \\ uFB50 - \\ uFDFF \\ uFE70 - \\ uFEFF]. * ")) {/ * ДА, это либо арабский, либо урду * /}'. Чтобы проверить только урду, используйте '' (? S). * [\\ u0600 - \\ u06FF \\ u0750 - \\ u077F \\ uFB50 - \\ uFDFF \\ uFE70 - \\ uFEFF]. * "' –