Проверка соответствия 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_]

Другие вопросы по тегам