Problème avec preg_match_all

Résolu
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008 - 28 sept. 2008 à 10:54
PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009 - 28 sept. 2008 à 17:05
Bonjour

Je comptais utiliser la fonction preg_match_all afin d'extraire d'une chaine caractère les sous chaines contenues entre 2 balises ([yt] et  /yt)

Cependant, lorsque je regarde l'aide de preg_match_all (ici :http://fr3.php.net/preg_match_all) je ne parviens pas à comprendre comment construire le |<[^>]+>(.*)</[^>]+>|U de l'exemple

merci d'avance :)

6 réponses

PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009
28 sept. 2008 à 16:57
>>1.
C'est le "language" regex (expressions régulières)
|\[yt\](.*)\/yt\|U
- le délimiteur > |  |     (ce que tu veux, identique)
- l'option de recherche > U     (option non gourmande, elle ne prendra que le 1er renvoi ou aucun)
- echaper les caractères spéciaux > \[     (les caractères spéciaux de la famille des regex doivent être échapés par un antislashe, tel que [, ], ?, +, *,... [ et ] servent à définir une classe de caractère donc on les échape)
- ici la chaine à trouver se situe entre [yt] et /yt, on y place donc a l'intérieur une paire de parenthese avec la commande .* qui veux dire tout et n'importe quoi 0 ou plusieur fois (et grace à ton option U, ça s'arretera à la 1er fois au pire, pil poil ce que tu désire donc)
Je te conseil de chercher un peu dans google pr en savoir plus sur les regex.

>>2.
Tjrs d'après le 1er exemple http://fr3.php.net/preg_match_all
un simple count($out); devrait suffir
3
PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009
28 sept. 2008 à 11:21
test voir ça :

|\[yt\](.*)\/yt\|U
 
0
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
28 sept. 2008 à 12:35
merci, cela fonctionne

j'aimerais cependant savoir deux choses :
1. Comment avez vous trouvé ?? :)
2. Comment faire pour trouver le nombre de remplacements fait par preg_match_all ?
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 sept. 2008 à 13:48
salut

preg_match_all ne fait pas de remplacements...

http://fr2.php.net/preg_replace

t'as la reponse dans les 5 premieres lignes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009
28 sept. 2008 à 17:03
preg_match, preg_match_all, tout dépend de ce que tu veux faire.
0
PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009
28 sept. 2008 à 17:05
euh...

preg_match, preg_replace
0
Rejoignez-nous