46 votes

Capture nommée en PHP à l'aide de regex

Comment puis-je utiliser la capture nommée avec regex en PHP ? Quelqu'un peut-il me donner un exemple de travail?

49voto

Dreaded semicolon Points 1390

Ne fonctionne pas avec replace , utile uniquement pour la correspondance en php

 $test="yet another test";

preg_match('/(?P<word>t[^s]+)/',$test,$matches);

var_dump($matches['word']);

32voto

Selon la documentation

PHP 5.2.2 a introduit deux syntaxes alternatives (?<name>pattern) et (?'name'pattern)

Vous obtiendrez donc le même résultat en utilisant :

 <?php
preg_match('/(?P<test>.+)/', $string, $matches);  // basic syntax
preg_match('/(?<test>.+)/', $string, $matches);   // alternative
preg_match("/(?'test'.+)/", $string, $matches);   // alternative

Vérifiez le résultat sur 3v4l.org

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X