2015-11-23 2 views
-1

Я пытаюсь проверить поле пароля, используя регулярное выражение в пространстве имен System.Text.RegularExpressions, но я получаю три ошибки дляC# .NET Regex «Непризнанная последовательность»

«неопознанной последовательности» ,

Когда я дважды нажимаю на ошибки, он выделяет «-» в выражении для диапазона символов, но я не знаю, почему это неправильно.

// пароль должен содержать один верхний регистр, одну строчную и одну цифру

Regex reg = new Regex("^(?=.*[[email protected]#$%^&*()\-_=+`~\[\]{}?|])(?=.+[a-z])(?=.+[A-Z])(? =.+[0-9]).{8,50}$"); 
+1

Вам не хватает '@' перед литералом регулярного выражения. –

+0

Вам следует избегать символа \. –

+0

Почему вы указали максимальную длину пароля? Пожалуйста, никогда не делай этого. –

ответ

5

Просто добавьте @ до первой котировки, чтобы сделать его дословная строковый литерал или избежать обратной косой черты, как \\.

-1

, кажется, у вас есть один пробел после ?

(? =. + [0-9]). {8,50}

удалить это.

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