Nimetut ryhmät PHP:n säännöllisissä lausekkeissa
Muistetaan, kuinka käytimme ryhmiä itse säännöllisessä lausekkeessa:
<?php
$res = preg_replace('#([a-z])\1#', '!', $str);
?>
Joskus on tilanteita, joissa on kätevämpää viitata ryhmään sen nimen perusteella, ei numeron. Tätä varten meidän on annettava ryhmälle nimi:
<?php
$res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>
Nyt voimme viitata tähän ryhmään
syntaksin \k<name> avulla, näin:
<?php
$res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>
Kuvatuilla nimetyillä ryhmillä on vielä muutama
vaihtoehtoinen syntaksi: (?P=name),
\k'name', \k{name}.
Annettu merkkijono:
<?php
$str = '12:59:59 12:59:12 09:45:09';
?>
Etsi kaikki aikaleimaosamerkkijonot, joissa tunti on sama kuin sekunnit.