Regex, чтобы иметь как минимум 1 символ и 1 номер

1

Я пытаюсь сделать регулярное выражение таким образом, чтобы его минимальная длина составляла 8 и максимальная длина составляла 25, и она должна содержать не менее 1 [A-Za-z] и не менее 1 [0-9]

Вот что я придумал:

Regex regex = new Regex("^.+${8,25}(?<=[A-Za-z])(?<=[0-9])");

var test = regex.IsMatch("testadasd9");

Но это не работает. Как вы можете видеть, я пользуюсь положительным взглядом. Любая помощь приветствуется.

  • 0
    Требуется ли REGEX? Возможно, используя стандартные строковые функции c #, это было бы намного проще и понятнее.
  • 1
    извините, требуется регулярное выражение, так как я хочу, чтобы это использовалось в валидаторе регулярных выражений Asp.Net
Показать ещё 6 комментариев
Теги:

1 ответ

6
Лучший ответ

Вы можете попробовать следующее регулярное выражение в соответствии с строкой минимальной длины 8 и максимальной длиной 25, а также строка должна содержать по крайней мере один литерал [A-Za-z] и по крайней мере одну цифру.

^(?=.{8,25}$)(?=.*?[A-Za-z])(?=.*?[0-9]).*

DEMO

  • 0
    Не может ли он быть заменен новым Regex ("(? =. {8,25} $) (? =. *? [A-Za-z]) (? =. *? [0-9])" ); для ясности?
  • 1
    Я не понимаю, как эти позитивные взгляды могут работать. Содержимое lookaheads имеет смысл, но как оно может выделить всю строку с помощью. * Впоследствии, когда первый lookahead уже включает всю строку ??? Интересно, что вы можете использовать конечную отметку $ в обходной части, однако я запутался.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню