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