Номгузоришуда кармани дар регуляри PHP

Биёед ба ёд оварем, ки чӣ тавр мо карманеро дар худи ифодаи мунтазам истифода мебурдем:

php<?php
  $res = preg_replace('#([a-z])\1#', '!', $str);
?>

Гоҳеҳо вазъиятҳое пеш меоянд, ки муносибтар аст ба карман муроҷиат кардан на бо рақами он, балки бо номи он. Барои ин мо бояд ба карман ном диҳем:

php<?php
  $res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>

Ҳоло мо метавонем ба ин карман тавассути синтаксиси \k<name> муроҷиат кунем, ин тавр:

php<?php
  $res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>

Кармани номгузоришудаи тавсифшуда боз чанд синтаксиси дигар доранд: (?P=name), \k'name', \k{name}.

Задание 1

Сатр дода шудааст:

php<?php
  $str = '12:59:59 12:59:12 09:45:09';
?>

Ҳама зерсатрҳоро бо вақт ёбед, ки дар онҳо соат бо сонияҳо мувофиқат мекунад.