Pomenované zachytávacie skupiny v regulárnom výraze PHP
Pripomeňme si, ako sme používali zachytávacie skupiny v samotnom regulárnom výraze:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Niekedy nastanú situácie, keď je pohodlnejšie odkazovať sa na zachytávaciu skupinu nie podľa jej čísla, ale podľa mena. Pre to potrebujeme zachytávacej skupine dať meno:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
Teraz sa môžeme na túto zachytávaciu skupinu odkázať
prostredníctvom syntaxe \k<name>, takto:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
Opísané pomenované zachytávacie skupiny majú ešte niekoľko
alternatívnych syntaxí: (?P=name),
\k'name', \k{name}.
Daný reťazec:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Nájdite všetky podreťazce s časom, v ktorých hodina zodpovedá sekundám.