PHP'de Düzenli İfadeler İçinde İsimli Yakalama Grupları
Düzenli ifadenin kendi içinde yakalama gruplarını nasıl kullandığımızı hatırlayalım:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Bazen bir yakalama grubuna numarası yerine ismi ile başvurmanın daha uygun olduğu durumlar olur. Bunun için yakalama grubuna bir isim vermemiz gerekir:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
Artık bu yakalama grubuna \k<name> sözdizimi ile başvurabiliriz, işte şöyle:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
Açıklanan isimli yakalama gruplarının birkaç alternatif sözdizimi daha vardır: (?P=name),
\k'name', \k{name}.
Bir dize verildi:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Saniyelerin saate eşit olduğu tüm zaman alt dizilerini bulun.