LINUX.ORG.RU

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

 


1

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 > '1111-2222-1111' -match '(\d+)-\d+-\1'
True
anonymous ()