Subpadrões nomeados dentro de expressões regulares no PHP
Vamos lembrar como usamos subpadrões na própria expressão regular:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Às vezes, há situações em que é mais conveniente consultar um subpadrão não pelo seu número, mas pelo nome. Para isso, precisamos dar um nome ao subpadrão:
<?php
$res = preg_replace('#(?<letra>[a-z])#', '!', $str);
?>
Agora podemos consultar este subpadrão
através da sintaxe \k<nome>, assim:
<?php
$res = preg_replace('#(?<letra>[a-z])\k<letra>#', '!', $str);
?>
Os subpadrões nomeados descritos têm ainda algumas
sintaxes alternativas: (?P=nome),
\k'nome', \k{nome}.
Dada a string:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Encontre todas as substrings com horário, nas quais a hora coincide com os segundos.