2017-02-17 2 views
1

Привет я хочу регулярное выражение для аз AZ 0_9آ-ی (персидский)Что регулярное выражение не работает в андроида

String regex ="^(?:([a-z A-Z 0-9])||([آ-ی]))+$"; 

я не хочу позволить специальные символы, такие как! @ # $%^& *() ?> < + -.

и мой commllet код:

public int check_first_last_name(String name){ 
    String regex ="^(?:([a-zA-Z0-9])||([آ-ی]))+$"; 
Matcher matcher = Pattern.compile(regex).matcher(name); 
if (!matcher.find()){ 
    return 2; 
} 
return 1; 
} 
+1

'^ (?: ([A-Za-Z0-9]) | ([آ-ی])) + $ ',' || 'должно быть' | 'и для ясности добавить ваши действительные случаи и недопустимые случаи и описание о том, что именно вы хотите –

+0

Я редактирую и исправляю свои ошибки. взгляните на это –

ответ

1

это регулярное выражение принимает каждые слова на английском, персидском и арабском языках, если вы хотите разрешить конец изменения пространства в регулярном выражении к «... 0-9»

if(name.matches("^([\\u0600-\\u06FF\\uFB8A\\u067E\\u0686\\u06AFa-zA-Z0-9])+$")){ 
//do what you want 
} 

, пожалуйста, проверьте код, вы должны иметь 2 обратных косая черта перед каждым юникодом, а не 4!

и если вы хотите принять все вкладки новой строки и пространство, вы можете использовать это регулярное выражение:

"^([\\u0600-\\u06FF\\uFB8A\\u067E\\u0686\\u06AFa-zA-Z0-9]+\\s?)+$" 
Смежные вопросы