Регулярные выражения в Java
Сталкнулся с такой проблемой: в ругулярных выражениях метод Pattern p = Pattern.compile(“a*b”); работает только с английскими буквами а сть необходимость валидации русских слов. Возможно ли заставить этот метод понимать и русские буквы?
Попробуй. Написать их в utf-8.
Цитата:
Написать их в utf-8.
Код:
Pattern p = Pattern.compile("\u049*\u050");
Тут дело вот в чем, достаю в сервлете строчку методом
String word=req.getParameter("word");
Далее создаю регулярное выражение:
Pattern pattern = Pattern.compile ("[a-zA-Z]{4,20}", Pattern.UNICODE_CASE);
В браузере кодировка Юникод(UTF-8).
Далее следует:
Matcher matcher= pattern.matcher(word);
if (matcher.matches()){
out.println("<h2>true</h2>");
}
else{
out.println("<h2>false</h2>");
}
Запрос всегда выводит false если слово написано на русском
Хотя эти строчки должны понимать и русские слова, где я не прав?
Код:
Pattern pattern = Pattern.compile ("[a-zа-яA-ZА-Я]{4,20}", Pattern.UNICODE_CASE);
а если поробовать добавить в паттерн русские буквы так?