^ [\w] $ не принимает текст как “holas”. Как я могу принимать буквы, тильды, числа, место и какие-то символы?

Я нахожусь в формуляре, у меня есть поле jTextField названный jTextField_descripcion, будь должен санкционировать это введенное описание. Только принимаются буквы, тильды, числа, -, _, /, и место, и должна быть ниже длина 121 символа.

public static boolean validarDescripcion(String descripcion){
    Pattern pat = Pattern.compile("^[\\w]$");
    Matcher mat = pat.matcher(descripcion);
    if (mat.matches() && (descripcion.length()<121)) {
        return true;
    } else {
        return false;
    }
}

if(Validaciones.validarDescripcion("holas"))
    System.out.println("Descripcion valida");
else
    System.out.println("Descripcion NO valida");

Почему он это не реализует?
В существо самое меньшее из 121 символа она должна бы быть действительной: нет?

1
задан 10.01.2017, 21:59
0 ответов

Какие-то вещи, чтобы исправлять в твоем коде:

  • ^ и $ они избыточные, когда ты используешь matches(), так как этот метод только совпадает со всем string.
  • \w только совпади с 1 единственным характером, ты был бы должен использовать повторение для того, чтобы он совпал с больше. Чтобы разы это повторяют между 1 и более, он использовался бы \w+. Чтобы это повторять между 1 и 120 разами \w{1,120}.
  • Чтобы добавлять больше символов, просто они могут присоединяться в классе символов: [-/ \w]{1,120}.
  • \w он не принимает тильды, ñ или диакритические другие назначенный по умолчанию. Для того, чтобы они воспринялись, нужно использовать flag UNICODE_CHARACTER_CLASS.

Таким образом, он у нас остался бы:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public static boolean validarDescripcion(String descripcion){
    Pattern pat = Pattern.compile("[-/ \\w]{1,120}", Pattern.UNICODE_CHARACTER_CLASS);
    Matcher mat = pat.matcher(descripcion);

    return mat.matches();
}
6
ответ дан 03.12.2019, 17:46
  • 1
    Когда бы то ни было habí в понятный ТАК ХОРОШО ответ. Образец documentació n, así если понимают с aclaració nes. Хорошая Относящаяся к Богородице работа. Очевидно функционируй в тысячу чудес, incorporé opció n añ adir точка "." и запятая " ". –  10.01.2017, 22:01
  • 2
    К себе может присоединять любой характер или ранг (как a-z) внутри класс символов . Só это будь осторожен в поддержании - сначала, или этом убегании как \\- (для того, чтобы он это не взял как ранг). –  10.01.2017, 22:03

Теги

Похожие вопросы