Написание выражения RegEx - PullRequest
1 голос
/ 28 октября 2008

Хочу написать RegEx для подтверждения водительских прав.

если он не начинается с (US, CA, CN), то после него следует XX, а после этого любое количество буквенных цифр.

Так, например, если водительские права начинаются с ГБ, то за ними должно следовать XX GBXX12345363 Однако, если это начинается с США, нам все равно, что будет после. USLA039247230

Ответы [ 4 ]

3 голосов
/ 28 октября 2008

Помните, что не все знакомы с этой системой обозначений водительских прав, я предполагаю, что ниже приводится точная спецификация (вы должны действительно быть очень точным, когда запрашиваете регулярное выражение, иначе вы получите вещи, которые вам не нужны ):

  • Должен начинаться с двух заглавных букв
  • Если эти первые две буквы являются либо США, CA или CN, остальные должны быть буквенно-цифровыми и неуказанной длины
  • Если эти первые две буквы не являются ни США, ни CA, ни CN, то следующие две буквы должны быть X, остальные после этого должны быть буквенно-цифровыми и неуказанной длины

    ((US | CA | CN) [A-Za-z0-9] + | (<(США |?! CA | CN)) [AZ] {2} XX [A-Za-z0-9] +) </p>

Первая часть:

  • Соответствует одному из США, CA или CN
  • Один или несколько буквенно-цифровых символов

Вторая часть:

  • Отрицательный взгляд назад, не начинается с CA CA CN
  • Имеет две заглавные буквы
  • Есть два символа X
  • Один или несколько буквенно-цифровых символов

И соответствует первой или второй части

0 голосов
/ 28 октября 2008
/^((US|CA|CN)[a-zA-Z\d]*|[a-zA-Z]{2}XX[a-zA-Z\d]*)$/
0 голосов
/ 28 октября 2008

Вы можете использовать функцию Look Behind , если ваша библиотека регулярных выражений позволяет это.

0 голосов
/ 28 октября 2008
/^(?:(?:US|CA|CN)\w+|[[:alpha:]]{2}XX\w+)$/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...