Как я могу использовать именованный захват с регулярным выражением в PHP? Может ли кто-нибудь дать мне рабочий пример?
Именованный захват в PHP с использованием регулярного выражения
Ответ 1
Не работает с заменой, полезно только для соответствия в php
$test="yet another test";
preg_match('/(?P<word>t[^s]+)/',$test,$matches);
var_dump($matches['word']);
Ответ 2
По документация
В PHP 5.2.2 были введены два альтернативных синтаксиса
(?<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