Ищем регулярное выражение - 8 символов мин с 1 числом и 1 символом - PullRequest
1 голос
/ 26 июня 2009

Мне нужна помощь в создании регулярного выражения, для которого требуется 8 символов (как минимум) по 1/1 номеру и 1 символ (не специальный символ).

пример: a1234567 действителен, но 12345678 не

Любая помощь для регулярного выражения новичка?

EDIT:

Спасибо за быстрые ответы - реализация, которая работала в VB, показана ниже

Dim ValidPassword As Boolean = Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")

Ответы [ 3 ]

6 голосов
/ 26 июня 2009

что-то вроде

^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$

будет работать

расчлененный:

  • ^ начало строки
  • (?=.*[0-9]) посмотрите в будущее и убедитесь, что есть хотя бы 1 цифра
  • (?=.*[a-zA-Z]) посмотрите вперед и убедитесь, что есть хотя бы одна буква
  • \w{8,} фактически соответствует 8+ символам
  • $ конец строки

Редактировать: , если вы хотите, чтобы дополнительные символы (которые не учитываются при требовании 1 буквы), используйте

^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$

это позволит использовать любой символ, кроме новой строки

Если вы хотите разрешить только определенные символы, замените \w в первом регулярном выражении на [A-Za-z0-9@#$%^&*] на ваш выбор символов

^ (?! [0-9] $) (?! [A-Za-Z _] $) \ ш {8} $

2 голосов
/ 26 июня 2009

Вам действительно нужно выражение с тремя регулярными выражениями:)

 /\w{8}/ 

дает минимум 8 A-Z, a-z, 0-9 и _ символов

/\d/ 

находит одну цифру

/[A-Za-z]/ 

находит одну букву.

Итак, в Perl:

$string =~ /\w{8}/ and $string =~ /\d/ and $string =~ /[A-Za-z]/
1 голос
/ 26 июня 2009

Попробуйте это регулярное выражение с положительным прогнозным утверждением :

(?=[a-zA-Z]*[0-9])(?=[0-9]*[a-zA-Z])^[0-9a-zA-Z]{8,}$

Детали:

  • (?=[a-zA-Z]*[0-9]) проверяет хотя бы один символ 0-9
  • (?=[0-9]*[a-zA-Z]) проверяет как минимум один символ из набора a-z, A-Z
  • ^[0-9a-zA-Z]{8,}$ проверяет длину как минимум 8 вхождений 0-9, a-z, A-Z.

Или только с базовым синтаксисом:

^([0-9][a-zA-Z][0-9a-zA-Z]{6,}|[0-9]{2}[a-zA-Z][0-9a-zA-Z]{5,}|[0-9]{3}[a-zA-Z][0-9a-zA-Z]{4,}|[0-9]{4}[a-zA-Z][0-9a-zA-Z]{3,}|[0-9]{5}[a-zA-Z][0-9a-zA-Z]{2,}|[0-9]{6}[a-zA-Z][0-9a-zA-Z]+|[0-9]{7}[a-zA-Z][0-9a-zA-Z]*|[a-zA-Z][0-9][0-9a-zA-Z]{6,}|[a-zA-Z]{2}[0-9][0-9a-zA-Z]{5,}|[a-zA-Z]{3}[0-9][0-9a-zA-Z]{4,}|[a-zA-Z]{4}[0-9][0-9a-zA-Z]{3,}|[a-zA-Z]{5}[0-9][0-9a-zA-Z]{2,}|[a-zA-Z]{6}[0-9][0-9a-zA-Z]+|[a-zA-Z]{7}[0-9][0-9a-zA-Z]*)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...