Как я могу использовать именованный захват с регулярным выражением в PHP? Может ли кто-нибудь дать мне рабочий пример?
Не работает с заменой, полезно только для соответствия в php
$test="yet another test"; preg_match('/(?P<word>t[^s]+)/',$test,$matches); var_dump($matches['word']);
Согласно документации
В PHP 5.2.2 были представлены два альтернативных синтаксиса
(?<name>pattern)
(?'name'pattern)
(?<name>pattern)
и(?'name'pattern)
Таким образом, вы получите тот же результат, используя:
<?php preg_match('/(?P<test>.+)/', $string, $matches); // basic syntax preg_match('/(?<test>.+)/', $string, $matches); // alternative preg_match("/(?'test'.+)/", $string, $matches); // alternative
Проверить результат на 3v4l.org