offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppPmRgENP 218 of 405 menu

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

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