Как создать регулярное выражение, которое принимает определенные символы? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть это регулярное выражение:

^[a-zA-Z0-9_@.#$%&'*+-/=?^`{|}~!(),:;<>[-\]]{8,}$

Мне нужно регулярное выражение, чтобы принять минимальную длину слова 8, буквы (прописные и строчные), цифры и следующие символы:

! #$% & '* + - / =? ^ _ `{|} ~" (),:; <> @ []

Работает, когда я его проверял здесь .

Вот как я использовал его в Java Android.

public static final String regex = "^[a-zA-Z0-9_@.#$%&'*+-/=?^`{|}~!(),:;<>[-\\]]{8,}$";

Это ошибка, которую я получил.

java.util.regex.PatternSyntaxException: Missing closing bracket in character class near index 49
    ^[a-zA-Z0-9_@.#$%&'*+-/=?^`{|}~!(),:;<>[-\]]{8,}$

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Если вы просто хотите проверить, соответствует ли данная входная строка вашему шаблону, вы можете использовать String#matches напрямую, например,

String regex = "[a-zA-Z0-9_@.#$%&'*+-/=?^`{|}~!(),:;<>\\[\\]-]{8,}";
String input = "Jon@Skeet#123";

if (input.matches(regex)) {
    System.out.println("Found a match");
}
else {
    System.out.println("No match");
}

Если вы хотите проанализировать больший входной текст и определить такие совпадающие слова, тогда вы захотите использовать формальные Pattern и Matcher.Но я не вижу необходимости в этом только на основании вашего вопроса.

0 голосов
/ 20 февраля 2019

Вы должны использовать шаблонный маркер.это может помочь вам.

следуйте инструкциям: https://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

Вот один пример.

  try {
                Pattern pattern;
                Matcher matcher;
                final String PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
                pattern = Pattern.compile(PASSWORD_PATTERN);
                matcher = pattern.matcher(password_string );

                 if(matcher.matches()){
                     Log.e("TAG", "TRUE")
                    }else{
                     Log.e("TAG", "FALSE")
                     }

            } catch (RuntimeException e) {
                return false;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...