Bonjour a tous,
Merci pour l'attention porté a ce post.
Je suis débutant dans les expressions régulières et j'ai un peu de mal avec. Aprés avoir passer 2heures sans sucés sur le problème je demande un peu d'aide.

Voila mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$s_input ="<gallery>Fichier:Exemple.jpg|[[Tournesol]] Fichier:Exemple1.jpg|[[La Joconde]] Fichier:Exemple2.jpg|Un [[hamster]]</gallery>";
 
$s_input = preg_replace('#<gallery>(Fichier:(.*)\|(\[*|.*)(.*|\]*))*</gallery>#', '<img src="$2"', $s_input);
 
do_dump($s_input);
Dans un premier temps je souhaiterais remplacer les images par img src='le nom de l'image'.

J'explique ma logique :

1. tous ce qui se trouve dans galery peut etre répété 1 ou plusieur fois (dou la parenthése général suivit de * => (Fichier.*)\|(\[*|.*).*\]*)* <=.
2. ce qui se trouve entre Fichier jusque | => Fichier.*)\| <=
3.(\[*|.*) => on peux avoir soit plusieurs crochets soit du texte direct (Exemple2.jpg|Un [[hamster]] ou Exemple2.jpg|[[Un hamster]] on peux aussi avoir que du texte)
4. on a du texte ou plusieur ]

Le resultat pour le moment => 1 image avec pour src toute la chaine presque.

A force de bidouiller j'ai réussit a avoir 3 img mais la la src n'etais pas correct.

Voila merci a ceux qui répondrons.
Bon code a tous.