Ονομασμένοι ομάδες εντός κανονικής έκφρασης PHP
Ας θυμηθούμε πώς χρησιμοποιούσαμε τις ομάδες (capturing groups) στην ίδια την κανονική έκφραση:
<?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';
?>
Βρείτε όλες τις υποσυμβολοσειρές με ώρα στις οποίες η ώρα ταιριάζει με τα δευτερόλεπτα.