2012-04-18 3 views
0

Привет я хочу, чтобы сформировать комбинации символов, какRegex комбинации символов

Комбинация алфавитов, Цифры (2) Специальные символы (1) Минимум 6 символов

Я попытался с помощью

((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,}) 

, но я не мог сделать комбинацию, как указано выше. Как это сделать?

+0

Вы хотите создать комбинации OR, чтобы соответствовать комбинации? –

+1

Было бы полезно использовать некоторые примеры ввода и ожидаемые совпадения. – alan

ответ

1

Ваше регулярное выражение в основном в порядке.

Вы не предоставили тип регулярных выражений, который вы используете, так что если это не Java или другой язык, который не поддерживает точные строки, вы, возможно, потребуется изменить \\d в \d, или что часть регулярного выражения будет попытайтесь сопоставить буквальную обратную косую черту, за которой следует d.

Кроме того, вы должны привязать регулярное выражение к началу строки, чтобы повысить производительность. В Java метод .matches() сделает это для вас неявно.

Тогда в настоящее время вашему регулярному выражению требуется только одна цифра, но два алфавита ASCII (один строчный, один верхний регистр). Это действительно то, что вы хотите?

Я бы интерпретировали ваши требования, как это:

if (subjectString.matches("(?=.*\\d.*\\d)(?=.*[A-Za-z])(?=.*[@#$%]).{6,}")) { 
    // Password matches the criteria 
} else { 
    // Password doesn't match the criteria 
} 
+0

Это Java Regex – user1321824

Смежные вопросы