LINUX.ORG.RU

Регулярное выражение

 


1

1

Приветствую. Как правильно написать регулярку чтобы находило 1Z3P-X137-M4BA-EAFP-F7K2 вот такое. Причем буквы и цифры меняются. Не меняется регистр, кол-во и дефисы между ними.

Ответ на: комментарий от lovelas

([A-Z0-9?]{3,8}-){1,4}[A-Z0-9?]{3,8}(\s|,) вот это подходит но несколько моментов лишних подгребает надо бы потчонее совсем немног

lovelas
() автор топика
Ответ на: комментарий от lovelas

[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}

С наскока, ошибся мальца. Вообще ошибка очевидная. Мог бы и понять.

erfea ★★★★★
()
Ответ на: комментарий от erfea

Да спасибо вот так работает [A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4} и спасибо тому человеку который выше ссылку на страницу с примерами скинул я репу почесал и вкурил. Можно закрывать.

lovelas
() автор топика

????-????-????-????-????

Или я нипонял условия задачи?

yvv ★★☆
()
> '1Z3P-X137-M4BA-EAFP-F7K2' -match '^([^-]{4}-){4}.{4}$'
True
anonymous
()
Ответ на: комментарий от erfea

если есть имена классов & вложенность то короче и возможно (не)понятней:

[[\d\A]{4}-]{4}[\d\A]{4}

если ссылки назад есть то как-то похоже на:

[([\d\A]{4})-]{4}\1

тогда красивее именовать:

([\d\A]{4})[\-\1]{4}

ес(ть)ли отрезание префикса у захваченного?

qulinxao3
()
Ответ на: комментарий от lovelas

и это достаточное обоснование чтобы за тебя кто-то написал это регулярное выражение?

anonymous
()
Ответ на: комментарий от qulinxao3

если ссылки назад есть то как-то похоже на:

Ссылки назад работают только если буквально повторяется одна и таже строка, которую захватили. Здесь 1111

 > '1111-2222-3333' -match '(\d+)-\d+-\1'
False

 > '1111-2222-1111' -match '(\d+)-\d+-\1'
True
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.