2016-02-29 3 views
0

Я не могу понять свою проблему. У меня есть ряд струн, какРегулярные выражения возвращают слишком много - жадность?

ST078K 
C022ZK 
C1084A 
H963F 
K123AA 

Резюмируя, 1 или 2 символов в начале, а затем 3-х или 4-х цифр, а затем 1 или 2-х символов. Тем не менее, мое регулярное выражение совпадает также без последних 1 или 2-х символов, присутствующих, как AB1234 Моего регулярное выражения является

^\w{1,2}?\d{3,4}\w{1,2}$ 

с игнорируемых случаем и глобальными параметрами установлены. Почему он не заботится о \ w {1,2} до конца строки? Спасибо за помощь!

+1

потому что \ w соответствует цифре – nAviD

+0

Aaargh, как глупо. благодаря – ExternalUse

ответ

1

Попробуйте это:

^[A-Z]{1,2}?\d{3,4}[A-Z]{1,2}$ 

Цифра считается охватывается \ ш, так что последние два слова одного символа были вашим цифры. Замена с помощью [A-Z] исправляет это. Удачи!

Демоверсия here.

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