Именованные карманы внутри регулярки PHP
Вспомним, как мы пользовались карманами в самом регулярном выражении:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Иногда бывают ситуации, когда удобнее обращаться к карману не по его номеру, а по имени. Для этого нам нужно дать карману имя:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
Теперь мы можем обратиться к этому карману
через синтаксис \k<name>, вот так:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
Описанные именованные карманы имеют еще несколько
альтернативных синтаксисов: (?P=name),
\k'name', \k{name}.
Дана строка:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Найдите все подстроки со временем, в которых час совпадает с секундами.