# Именованные карманы внутри регулярки 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'; ?>`

Найдите все подстроки со временем, в которых час совпадает с секундами.

← →
↑