2008-10-28 2 views
1

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

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

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

+0

Вы можете исправить заголовок для «Написание выражения RegEx»? – 2008-10-28 16:59:11

ответ

3

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

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

    ((US | CA | CN) [A-Za-z0-9] + | (? < (США | CA | CN)) [AZ] {2} ХХ [A-Za-z0-9] +)

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

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

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

  • Negative ло okbehind, не начинается с США CA CN
  • Имеет две прописные буквы
  • Есть два X символов
  • Один или несколько буквенно-цифровых символов

И это соответствует либо первая часть, либо второй

+0

Труба во внешних круглых скобках делает lookbehind совершенно ненужным. – eyelidlessness 2008-10-28 17:18:33

0
/^(?:(?:US|CA|CN)\w+|[[:alpha:]]{2}XX\w+)$/ 

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

+0

\ w соответствует _ также – 2008-10-28 17:06:41

0

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

Смежные вопросы