preg_match_all et les expressions regulieres

ViPHP
ViPHP | 656 Messages

17 févr. 2006, 08:32

Bonjour,

je voulais savoir comment faire pour ceci :
preg_match_all("<!--loop:(*^):start-->(*)<!--loop:(*^):stop-->", $this->str, $this->str);
J'ai 3 valeurs inconnus et je voudrais que preg match ne retourne son tableau que si la première et la troisième occurence sont identiques.

Merci pour votre aide.

Mammouth du PHP | 505 Messages

17 févr. 2006, 09:18

Essai qq chose comme ca...
le \1 fait référence a la premiere capture
$source='<!--loop:toto:start-->titi<!--loop:toto:stop-->
<!--loop:toto:start-->titi<!--loop:tito:stop-->';
preg_match_all('/<!--loop:(.+?):start-->(.+?)<!--loop:\1:stop-->/',$source,$dest);
print_r($dest);

Code : Tout sélectionner

Array ( [0] => Array ( [0] => titi ) [1] => Array ( [0] => toto ) [2] => Array ( [0] => titi ) )

ViPHP
ViPHP | 656 Messages

17 févr. 2006, 10:25

Ok merci je ne connaissais pas cette possibilitée.

j'ai utilisé cette expression :
'#<!--loop:(\w*):start-->(.*)<!--loop:\1:stop-->#Us'