как написать это регулярное выражение? - PullRequest
1 голос
/ 21 марта 2009

буквенно-цифровая строка длиной 20–24 символа без пробелов и символов, состоящая как минимум из 2 цифр

AAAAAAAAAAAAAAAAAAAA - not valid
AAAAAA0AAAAAAAAA0AAA - valid
AAAAAA01AAAAAAAAA0AAA - valid
AAAAAA0AAAAAAAAA0AAA@ - not valid

Ответы [ 6 ]

5 голосов
/ 21 марта 2009

Я думаю, что это возможно только с предварительным утверждением:

^(?=[a-zA-Z\d]{20,24}$)[a-zA-Z]*\d[a-zA-Z]*\d[a-zA-Z\d]*$

Предварительное утверждение ((?=[a-zA-Z\d]{20,24}$)) проверяет, имеет ли строка ожидаемую форму (20–24 буквенно-цифровых символов). А вторая часть ([a-zA-Z]*\d[a-zA-Z]*\d[a-zA-Z\d]*) проверяет, содержит ли она хотя бы две цифры.

2 голосов
/ 22 марта 2009

Я думаю, что это самый простой шаблон: сначала посмотрите положительно, чтобы убедиться, что есть хотя бы две цифры, а затем сопоставьте 20-24 буквенно-цифровых символов:

^(?=.*\d.*\d)[A-Za-z\d]{20,24}$
1 голос
/ 21 марта 2009

Gumbo имеет правильное выражение для требований.

Его можно было бы сократить, но он был более четким и, вероятно, быстрее, чем короткая версия.

var rX = / ^ (? = [A-zA-Z \ d] {20,24} $) ([a-zA-Z] * \ d) {2,} /

1 голос
/ 21 марта 2009

Я собираюсь быть абстрактным, потому что это звучит как домашняя работа (если это так, пожалуйста, пометьте ее как таковую).

  • Вы можете ограничить число совпадений паттерна с { min , max }
  • Вы можете ограничить, какие символы совпадают с [ charlist ]
  • Вы можете наложить дополнительные ограничения на то, что называется положительным прогнозом нулевой ширины (есть и отрицательная форма). Синтаксис варьируется, поэтому проверьте документы в своей среде.

Обновите свой вопрос (& теги), если вам нужна дополнительная помощь.

0 голосов
/ 24 февраля 2011

в JS (недостаточно уверенно с синтаксисом C #):

if (str.length >= 20 && str.length <= 24 && /([a-z]*[0-9]){2}[a-z0-9]*/i.test(str)) {
  // match found
}
0 голосов
/ 21 марта 2009

По сути та же идея, что и у Гамбо, чуть короче:

^(?=[\w\d]{20,24}$)[\w]*\d[\w]*\d[\w\d]*$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...