[Résolu] Aide pour un preg_match_all récalcitrant

Aide pour un preg_match_all récalcitrant [Résolu] - PHP - Programmation

Marsh Posté le 05-04-2018 à 04:41:10    

Bonjour à tous,
 
Ca fait des heures que je me bats avec l'utilisation d'un preg_match_all sur une chaine de caractères de cette forme :

Code :
  1. title="Accéder à la fiche de TOTO" title="Accéder à la fiche de MONSIEUR TATA" title="Accéder à la fiche de TITI"


Je voudrais évidemment obtenir en résultat 1 => array( [0]=>TOTO, [1]=>MONSIEUR TATA, [2]=> TITI)
 
Au lieu de ça, la regexp que j'utilise :

Code :
  1. #title="Accéder à la fiche de (.+)"#

renvoie :

Citation :

array (
  0 =>  
  array (
    0 => 'title="Accéder à la fiche de TOTO" title="Accéder à la fiche de MONSIEUR TATA" title="Accéder à la fiche de TOTO"',
  ),
  1 =>  
  array (
    0 => 'TOTO" title="Accéder à la fiche de MONSIEUR TATA" title="Accéder à la fiche de TOTO',
  ),
)


C'est-à-dire que l'élément 1 ne contient qu'un élément : la chaine totale qui suit le premier title="Accéder à la fiche de , au lieu d'en contenir trois, correspondant aux trois occurrences...
 
J'imagine que mon expression régulière pêche, mais impossible de savoir où ni comment faire fonctionner tout ça...
 
Merci d'avance pour votre aide  [:enuma:4]


Message édité par enuma le 05-04-2018 à 12:44:05
Reply

Marsh Posté le 05-04-2018 à 04:41:10   

Reply

Marsh Posté le 05-04-2018 à 11:09:19    

Bonjour,
 
La capture ne s'arrête pas car tu demandes n'importe quel caractère dont le ", il faut donc l'exclure comme suit :

Code :
  1. #title="Accéder à la fiche de ([^"]+)"#


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 05-04-2018 à 12:39:09    

Bordel, j'y ai passé des heures [:enuma:4]
 
Merci beaucoup !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed