Perl, RegEx и LookAhead — форматируем MAC-адрес
Задача — из 001e8c15ffbc сделать 00:1e:8c:15:ff:bc
Решение —
perl -le 'my $x = «001e8c15ffbc»;$x =~ s/(...(?!\Z))/\1:/g; print $x'
Разберем по кусочкам этот примитив.
(...(?!\Z))/\1:
... — два любых символа (можно написать длиннее, если сомневаемся, что к нам придёт именно мак) — например, [a-f\d]{2}
(?!\Z) — заглянем вперёд — нет ли там конца строки. Если есть — не попадаем в условие и, соответственно, не заменяем.
Вот собственно и вся сложность лукахедов и прочего.