Проверка соответствия Java Regex
Я уже прочитал статью о регулярных выражениях в Java для проверки имени пользователя
Я пытался сделать это сам. с JAVA 1,7
String value="12345_-6zA";
Boolean result= value.matches("[a-zA-Z0-9_-]");
System.out.println(result);
Я тоже пробовал
String value="12345a";
Boolean result= value.matches("[a-zA-Z0-9_-]")
System.out.println(result);
Но оба дают мне результат "False", значение String содержит только тот символ, который указано в регулярном выражении. Я не могу понять, почему он вернул false.
1 ответ
Решение
Вам не хватает квантификатора +
который должен соответствовать 1 или из этих символов в вашем классе символов:
Использовать этот:
boolean result = value.matches("[a-zA-Z0-9_-]+");
Или даже лучше:
boolean result = value.matches("[\\w-]+");
поскольку \w
эквивалентно [a-zA-Z0-9_]