Іменаваныя карманы ўнутры рэгуляркі PHP
Успомнім, як мы карысталіся карманамі ў самай рэгулярнай выразе:
<?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';
?>
Знайдзіце ўсе падрадкі з часам, у якіх гадзіна супадае з секундамі.