Регулярное выражение, чтобы проверить, содержит ли данный пароль по крайней мере одно число и одну букву в c#?

Потеряйте круглые скобки и запятые.

Вызывание Вашей функции как:

$s = CreateAppPoolScript "name" "user" "pass"

дает:

cscript adsutil.vbs CREATE "w3svc/AppPools/name" IIsApplicationPool
cscript adsutil.vbs SET "w3svc/AppPools/name/WamUserName" "user"
cscript adsutil.vbs SET "w3svc/AppPools/name/WamUserPass" "pass"
cscript adsutil.vbs SET "w3svc/AppPools/name/AppPoolIdentityType" 3
13
задан Dan Atkinson 22 August 2009 в 23:55
поделиться

3 ответа

Позитивный прогноз - это то, что вы ищете. Регулярное выражение выглядит так:

(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+

Здесь (? =. * [A-Za-z]) - это положительный просмотр вперед, который утверждает, что ваша строка как , по крайней мере, один символ , а (? =. * [0-9]) утверждает, что он имеет по крайней мере одну цифру . Важно отметить, что положительный просмотр вперед не возвращает совпадение, а скорее утверждает, существует ли совпадение или нет. Итак, предыдущее регулярное выражение следует читать как «утверждать, что в нем есть хотя бы один символ; утверждать, что в нем есть хотя бы одна цифра; теперь, когда мы знаем, что утверждения прошли, просто проверьте наличие буквенно-цифровых символов».

Это очень интересно потому что он позволяет легко комбинировать требования к валидации вашего приложения, не усложняя регулярное выражение.

21
ответ дан 1 December 2019 в 20:30
поделиться

Если вы хотите, чтобы это было в одном регулярном выражении, вы можете использовать "[a-zA-Z]. * \\ d | \\ d. * [A-zA-Z]" хотя две отдельные проверки могут быть более удобочитаемыми.

Изменить: подход с двумя проверками, который я считаю вполне читаемым, может выглядеть так:

Regex.IsMatch(password, "\\d") && Regex.IsMatch(password, "[a-zA-Z]")
7
ответ дан 1 December 2019 в 20:30
поделиться
bool isValid = Regex.IsMatch(password, @"[a-zA-Z]") &&
               Regex.IsMatch(password, @"\d");
2
ответ дан 1 December 2019 в 20:30
поделиться
Другие вопросы по тегам:

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