2016-09-08 3 views
0

Я ищу регулярное выражение для совершенно другого состояния. Мое выражение требует:Регулярное выражение для другого шаблона, имеющего несколько условий

  1. Общая длина должна быть 6 или 7 или 8 символов.
  2. Должен быть включен пробел (пробел).
  3. Внутренний код, часть справа от зазора, всегда должна быть 3 символа.
  4. Первый символ внутреннего кода должен быть числовым.
  5. Второй и третий символы внутреннего кода должны быть альфа.
  6. Внешний код, часть слева от промежутка, может быть 2, 3 или 4 символа.
  7. Первый символ внешнего кода должен быть альфа.

Мне нужно выражение быть как this- Bh6 5BG или b6 7Ba или CH11 2ab

алфавитов может быть в нижнем регистре или в верхнем регистре, и первый символ должен быть алфавит и через пробел три символа разрешены, в которых первый должен быть числом.

Я сделал регулярное выражение, которое включает только первое условие - ^(\d{6}|\d{7}|\d{8})$

я очень запутался в регулярном выражении. Может ли кто-нибудь помочь мне в создании регулярного выражения для вышеуказанных условий?

+3

Просьба привести пример приемлемой строки в соответствии с вашим требованием к шаблону. –

+0

Я добавил выражение. @Dhaval – Aanchal

ответ

2

Следующая регулярное выражение должно работать:

^[A-Za-z][A-Za-z\d]{1,3}\s\d[A-Za-z]{2}$ 

Explaination

+0

Я добавил еще один пример в вопрос. Не могли бы вы помочь в достижении этого – Aanchal

+0

Я проверил все 3 примера в вашем вопросе, и он работает. –

1

Я считаю, что это будет делать это для вас:

^[a-zA-Z][a-zA-Z0-9]{1,3} \d[a-zA-Z]{2}$ 

Это соответствует

  • ^ начало линии
  • [a-zA-Z] альфа-символ - верхний или нижний регистр.
  • [a-zA-Z0-9]{1,3} символ альфа - верхний или нижний регистр - или цифра, повторяемая 1-3 раза.
  • пространство
  • \d цифра
  • [a-zA-Z]{2} альфа-символ - верхний или нижний регистр - повторяется 2 раза.
  • $ конец строки

Some examples at regex101.

+0

Я разработал свое требование, не мог бы вы помочь в этом @ ClasG – Aanchal

+1

Я смущен - я считаю, что мое регулярное выражение выполняет все ваши требования. – ClasG

+0

ваше регулярное выражение также работает, спасибо – Aanchal

0

Я хотел бы использовать это:

/^[a-z].{1,3}\s\d[a-z]{2}$/i 

Разбивка:

^        #start of line 
[a-z]       #alpa 
     .{1,3}     #from 1 to 3 of any char 
      \s     #a whitespace char 
       \d    #a digit 
       [a-z]{2}  #2 of any aplha 
         $  #end of line 
         i  #case insensitive 
+1

@ClasG, следовательно, использование модификатора 'i', поэтому регулярное выражение нечувствительно к регистру. – Tensibai

+0

Итак, вы предполагаете, что это javascript, или ...? – ClasG

+0

@ ClasG Ну, OP ничего не говорит о используемом языке, поэтому выражение PCRE звучит хорошо для меня. – Tensibai

0
^(?i)[a-z][a-z0-9]{1,3}\\s[0-9][a-z]{2}$ 

(?i) -> В качестве алфавитов может быть нижний регистр или верхний регистр.

\\s -> Для одного пробела/пробела.

* Я проверил его с помощью Java.

+1

@ Tensibai ценят за это. –

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

  • Нет связанных вопросов^_^