Pojmenované zachytávací skupiny v regulárních výrazech PHP
Připomeňme si, jak jsme používali zachytávací skupiny v samotném regulárním výrazu:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Někdy nastanou situace, kdy je pohodlnější odkazovat se na zachytávací skupinu ne podle jejího čísla, ale podle jména. Pro to potřebujeme dát zachytávací skupině jméno:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
Nyní se můžeme k této zachytávací skupině odkazovat
pomocí syntaxe \k<name>, takto:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
Popsané pojmenované zachytávací skupiny mají ještě několik
alternativních syntaxí: (?P=name),
\k'name', \k{name}.
Je dán řetězec:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Nalezněte všechny podřetězce s časem, ve kterých hodina souhlasí s vteřinami.