Я ищу регулярное выражение для совершенно другого условия. Мое выражение требует-

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

Мне нужно, чтобы выражение было таким - BH6 5BG или b6 7ba или CH11 2ab

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

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

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

0
Aanchal 8 Сен 2016 в 10:47

3 ответа

Лучший ответ

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

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

Explaination

2
Pradeep Kumar 8 Сен 2016 в 09:36

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

/^[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
0
Thomas Ayoub 8 Сен 2016 в 07:53
^(?i)[a-z][a-z0-9]{1,3}\\s[0-9][a-z]{2}$

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

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

* Проверял на Java.

0
Dhaval Simaria 8 Сен 2016 в 10:49